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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • IO输入输出
    查看全部
    0 采集 收起 来源:文件的编码

    2015-09-10

  • file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容,列出当前目录下的子目录和文件。 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称
    查看全部
    0 采集 收起 来源:遍历目录

    2015-09-09

  • file.createNewFile();创建文件 file.mkdir();创建文件夹 file.mkdirs();多级目录创建 file.delete();删除目录 file.renameTo();改名字 file.exist();判断是否存在 file.isDirectory();判断是否是目录 file.canRead();判断可读 file.canWrite();判断可编辑 file.isHidden();判断是否隐藏 File file = new File(“e:”+File.separator)//File.separator 设置分隔符,不管在哪个系统下都可以 file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容String[] file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称File[] file.getAbsolutePath();获得绝对路径 getName(); getParent(); file.getPath();获得当前对象的路劲
    查看全部
  • 这样套着写好处就是可以里面涉及到的所有方法,并且可以达到目的一次读一行
    查看全部
  • bufferReaderLine//一次读一行 bufferWriterLine//一次写一行
    查看全部
  • FileWriter/FileReader 他们和OutputStream/inputstream区别就在于构造的时候后者更简单一点。
    查看全部
  • InputStream、OutputStream 抽象了应用程序读写数据方式(父类,抽象类) FileInputStream、FileOutputStream (子类) EOF=End 及文件结尾(读到-1)(is.read()=-1) 输入流基本方法 read(); 输入流基本方法 int b=in.read();读取一个字节无符号填充到int的低八位,前面的24位补零。(int是32位,一个字节8位)-1是EOF in.read(byte[] buf);读取数据填充到字节数组buf in.read(byte[] buf,int start,int size),同上,从buf的start位置开始存放size长度的数据 输出流基本方法 out.write(int b) 写出一个byte到流,b的低八位 out.write(byte][] buf) 将buf字节数组都写入到流 out.write(byte[] buf,int start,int size);同上,详见read对应方法 FileInputStream 具体实现了文件上读取数据
    查看全部
  • 字节流和字符流
    查看全部
  • 注意write方法每次只能写入一个字节: raf.write('A');//此时指针后移 System.out.println(raf.getFilePointer());此时输出为1 这时只写入了一个字节而不是完整的char,只是因为后八位刚好能够表示A raf.write('B'); 若要写入一个整数i则需要写四次 int i=0x7fffffff; raf.write(i>>>24);//高八位 raf.write(i>>>16); raf.write(i>>>8); raf.write(i);//写入最低的八位 System.out.println(raf.getFilePointer()); 此时打印输出6 可以直接写入一个int raf.writeInt(i); String s="中"; byte[] gbk=s.getBytes("gbk"); raf.write(gbk); System.out.println(raf.length(0); 此时打印输出12(中文占俩字节) 读文件,必须把指针移到头部 raf.seek(); //一次性读取: byte[] buf= new byte[(int)raf.length()]; raf.read(buf); System.out.println(Arrays.toString(buf)); 此时打印输出 [65,66,127,-1,-1,-1,127,-1,-1,-1,-42,-48] 开头的65,66是正确的AB,因为后八位已经能表示AB了 也可按字符串输出 String s1=new String(buf); System.out.println(s1,"gbk"); 打印输出AB????? 因为“中”的前后都有字节,只有定位到中的两个字节,才能读出他 最后要加上raf.close();
    查看全部
  • RandomAcessFile相关操作
    查看全部
  • 文件的异常有 IOException 抛出的异常 IllegalArgumentException(); file.list() 返回当前目录下的子目录和文件的字符串数组名称 file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称 public static void listDirectory(File dir) throws IOException{ if(!dir.exist()){ throw new IllegalArgumentException("目录:"+dir+"不存在"); } if (!dir.isDirectory) { throw new IllegalArgumentException(dir+"不是目录"); } String[] filenames=dir.list(); //返回的是字符串数组 直接子的名称不包含子目录下的内容 for (String string:filenames){ system.out.println(dir+"\\"+string); } //如果要遍历子目录下的内容 需要构造File对象做递归操作, File提供了直接返回File对象的API File[] files=dir.listFiles(); //返回的是直接目录(文件)的抽象 foreach后仍为子目录 if (files!=null && files.length>0) { //说明有子目录存在 for(File file:files){ if (file.isDirectory()){ listDirectory(file); } else { system.out.println(file); } main FileUtils.listDirectory(new File("e:\\example")); //打印出目录下所有的文件名 没有子目录
    查看全部
    0 采集 收起 来源:遍历目录

    2018-03-22

  • java.io.File类用于表示文件(目录) File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件类型的内容的访问。 file.exists()判断文件是否存在 file.mkdir();创建文件夹 多级目录创建,mkdirs() file.delete();删除文件 file.idDirectory();判断是否是目录,是目录返回true,不是或者不存在都返回false file.isFile();判断是否是文件 file.createNewFile();创建文件 File file=new File("D:/javaio/日记.txt");等价于File file=new File("D:/javaio","日记.txt"); 常用的file对象API File file = new File(String Path);(路径\要用转义字符\\或者/或者File.separator获取系统分隔符 file //file.toString()的内容 file.getAbsolutePath(); getName(); getParent(); File.separator:静态成员,用于设置分隔符(所有系统均通用,不像/,windows适用,其他系统不一定适用) public String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 exists()方法用于判断文件或目录是否存在 file.list() 返回的是 字符串数组 直接子的名称,不包含子目录下的内容String[] file.listFiles() 返回当前目录下的所有子目录和文件的文件数组名称File[] ======================================== 如果要遍历子目录下的内容就需要构造成File对象做递归操作 //throws IOException 回避了IO的抛出异常
    查看全部
  • 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编码(例如直接在电脑中创建文本文件)
    查看全部
    0 采集 收起 来源:文件的编码

    2018-03-22

  • s.defaultWriteObject 完成默认的序列化, ArrayList 就是自己完成序列化的~~~s.writeInt(stuage);自己完成序列化
    查看全部
  • transient修饰的属性不会被序列化
    查看全部

举报

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

微信扫码,参与3人拼团

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

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