为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • s.getBytes()转换字符串为字节数组(字节为转换后的int数据类型); Integer.toHexString() 将int转换为十六进制 int 32位,byte 8位; byte 转 int 在前面添加24个零;b&0xff 与运算消除前面的24个零
    查看全部
    2 采集 收起 来源:文件的编码

    2018-03-22

  • 使用transient关键字使指定的object元素不进行jvm默认的序列化 自己序列化的方式:在要序列化的类中加入两个方法: private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException private void readObject(java.io.ObjectInputStream s) throws java.io.IOException,ClassNotFoundException ArrayList源码中自己序列化的目的:ArrayList底层为数组,自己序列化可以过滤数组中无效的元素,只序列化数组中有效的元素,从而提高性能。
    查看全部
  • 总结起来老师的代码有以下不足: 1、在补零的语句中byte数组buf[i]不能直接与整形 0xf比较大小,这样会导致强制转化让数据出错。 2、在补零的语句中没有判断buf[i]需要大于零 正确的代码如下: if((buf[i]&0xff)>0 && (buf[i]&0xff)<=0xf){ System.out.print("0"); } 3.&0xff的意思实际上是取低八位,老师是直接说了讲高24位清零。这样说对初学者来说可能比较难以理解。
    查看全部
  • java.io.File类在Java中表示文件或目录。 File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。 创建File对象:File file=new File(String path); 可以通过 alt+/ 查看构造函数 注意:盘符后跟双斜杠 \\ 或者 / 1. file.seperater();获取系统分隔符 2. file.exists();是否存在.存在返回true,不存在返回false 3. file.mkdir();或者file.mkdirs();创建目录或多级目录。 4. file.isDirectory()或者file.isFile()判断是否是目录或者是否是文件。是返回true,不是为false 5. file.delete();删除文件/文件夹。 6. file.createNewFile();创建新文件。 7. file.getName()获取文件名称。 8. file.getAbsolutePath()获取绝对路径。 9. file.getParent();获取父级绝对路径。
    查看全部
  • File遍历目录与文件 public static void listDirectory(File dir) throws IOException { // 判断是否是否存在 if (!dir.exists()) { throw new IllegalArgumentException("目录:" + dir + "不存在"); } // 判断是否为目录 if (!dir.isDirectory()) { throw new IllegalArgumentException(dir + "不是目录"); } // list方法用于列出当前目录下的子目录和文件,返回的是字符串数组,不包含子目录下的文件 /*String[] filenames = dir.list(); for (String string : filenames) { System.out.println(dir + "\\" + string); } */ // 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的方法 // 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 File[] files = dir.listFiles(); for (File fl : files) { if (fl.isDirectory()) { // 递归 listDirectory(fl); } else { System.out.println(fl); } } } 遍历子目录下的内容 构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常 File[] files = dir.listFiles();//返回的是直接子目录(文件)的抽象 if (file!=null && files.length > 0){ for(File file:files){ if(file.isDrectory()){ listDirectory(file); }else{ System.out.println(file); } } }
    查看全部
    2 采集 收起 来源:遍历目录

    2018-03-22

  • RandomAccessFile的使用 File demo = new File("F:\\IO流\\RandomAccessFile的使用"); if (!demo.exists()) demo.mkdir(); File file = new File(demo, "raf.txt"); if (!file.exists()) file.createNewFile(); RandomAccessFile raf = new RandomAccessFile(file, "rw"); // 指针位置 System.out.println(raf.getFilePointer()); // 只写了一个字节 raf.write('A'); int i = 0X7fffffff; // 用write方法每次只能写进去一个字节,如果要把i写进去就得写四次 raf.write(i >>> 24);// 高8位 raf.write(i >>> 16); raf.write(i >>> 8); raf.write(i); // 可以直接写一个int raf.writeInt(i); String s = "中"; byte[] gbk = s.getBytes("gbk"); raf.write(gbk); // 读文件,必须把指针移到头部 raf.seek(0); // 一次性读取,把文件中的内容都读到字节数组中 byte[] buf = new byte[(int) raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); String s1 = new String(buf); System.out.println(s1); for (byte b : buf) { System.out.print(Integer.toHexString(b & 0Xff) + " "); } raf.close();
    查看全部
  • File类常用API 调用一个文件:File file=new File("e:\\javaio"); 如果文件不存在:if(!file.exists()) 创建一个文件:file.mkdir();——————创建多级目录:file.mkdirs() 否则:else 删除文件:file.delete(); 是否是一个目录:file.isDirectory() 是否是一个文件:file.isFile() 调用一个txt文件:File file2=new File("e:\\javaio\\日记.txt") 另一种方法:File file2=new File("e:\\javaio","日记.txt") 如果不存在就创建一个:file2.craeteNewFile() System.out.println(file)打印出来的是file的路径:e:\javaio也就是file.toString()的内容,也是file.getAbsolutePath()的内容 获取文件的名字:file.getName() 获取文件父目录的路径:file.getParent() 等同于file.getParentFile().getAbsolutePath()
    查看全部
  • 文件编码: 1.gbk:一个中文字符占两个字节,一个英文字符占一个字节,是转换成字节序列时的默认编码方式。 2.utf-8:一个中文字符占三个字节,一个英文字符占一个字节 3.utf-16be:java的编码方式,一个中文和一个英文字符都是占两个字节 4.字节序列转换成字符时要采用相同的编码方式,否则会乱码 5.文本文件就是字节序列,可以是任意编码的字节序列,但是如果直接在中文机器上创建文本文件,那么该文本文件只认识ansi编码
    查看全部
    2 采集 收起 来源:文件的编码

    2016-08-03

  • String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件)
    查看全部
    2 采集 收起 来源:文件的编码

    2018-03-22

  • RandomAccessFile步骤说明
    查看全部
  • 序列化过程中子父类构造函数问题 一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。
    查看全部
  • String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件)
    查看全部
    1 采集 收起 来源:文件的编码

    2018-03-22

  • RandomAccessFile java提供的对文件内容的访问,即可以读文件,也可以写文件。 支持随机访问文件、可以访问文件的任意位置。 (1)java 文件模型 在硬盘上的文件时byte byte byte存储的,是数据的集合 (2)打开文件有两种模式"rw"(读写)"r"(只读) 文件指针,打开文件时指针在开头pointer = 0; (3)写方法 Write
    查看全部
  • "gbk编码"一个中文占两个字节英文占一个字节,"UTF-8"编码一个中文占三个字节一个英文占一个字节,"UTF-16be编码"中英文都占两个字节。
    查看全部
    1 采集 收起 来源:文件的编码

    2018-03-22

  • 中文机器上创建的文本文件只能识别ansi编码 如果是由其他地方创建的文本文件 再拷贝出来的则可以识别任意的编码 UTF-8编码 汉字占3个字节 英文占一个 gbk编码 汉字占2个字节 英文占1个 UTF-16be编码是java中的编码 汉字和英文都是占两个字节 .getBytes();将字符串变成byte类型 integer.toHexString();将字节流变成16进制的int类型 用什么编码将字符串变成字节流 就要用同样的编码才能将其变回去 new String(“dd”,"UTF-8");可以自己选择编码方式 缺省则是默认工程属性中默认的编码
    查看全部
    1 采集 收起 来源:文件的编码

    2018-03-22

举报

0/150
提交
取消
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!