黑马程序员 IO 字符流中 的读取 和 写入

来源:互联网 发布:js获取数组索引值 编辑:程序博客网 时间:2024/05/21 06:18
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
IO 流常用的基类。字节流的抽象基类;inputStream  outputStream。字节流的抽象基类。Reader  Writer在它们前面加上 File 就是他么这四个 抽象基类的子类注意;这四个类派的子类的子类的名称都是以其父类名作为子类名的后缀。如;inputStream 的子类 FileInputStream   Reader  的子类  FileReader它们使用来对文件进行读取和 写入的.这四者当中先从字节流说起 1,FileWriter 写入流,把想写的东西写到文件中,个人理解好记忆FileWriter 这是一个用来写入的流,就是说我想在,电脑的任意盘中新建一个文件夹,平时我们都是鼠标右键,然后新建,当我们学习到FileWriter的时候,不用那样就可以来完成;例如FileWriter  fr = new FileWriter("c:\\Demo.java");这句话的意思就是说,在 c:\下新建一个叫Demo.java的文件,现在我们文件创建好了,我们要往这个文件中写点东西啊;那就要用到里面的方法  write(); 此方法再用的时候,就要刷新用到的方法是flush();如果是不刷的话那么,写的东西是不会到指定的文件中去的,只是在流中,close();这个方法也是有刷新作用的,就是说到最后,在关闭流的时候,就可以一次性把流中的东西刷到要指定目录中.还有就是用FileWriter 在写文件的时候,只要是这个文件时存在的话,那么它就会覆盖前面文件里面的内容,那我们怎么能在后面在写点东西呢.那就是在创建 Writer 对象的时候这样创建new FileWriter("c:\\Demo.java",true);我们可以直接,把想写的东西写到里面,也可以把字节变成字符数组,先写到数组中,再通过write();把内容写到指定目录中.2,FileReader 写出流,就是把文件里面的东西写出来,个人理解好记忆上面我们写过了那么现在就是读了,试想一下在我们平时读书的时候肯定是要先有书我们才能读,我们就现在自己的硬盘中找一份文件来读 那么用到的对象就是 ; FileReader fr = new FileReader("c:\\Demo.java");这是关联一份文件.现在文件有了 那么就要开始读了.用到的方法就是 read();我们在读到最后都没有内容了那这个时候,怎么还能继续往下读呢.所以这里面 要有判断的标记 -1,只要是读到-1说明就结束了;main(String[] args){FileReader fw= new FileReader("c:\\Demo.java");int len =-1;while((len = fw.read())!=-1){System.out.print((char)len);}}还有另外一种向外写的方式,就是先写到char[] 数组中.再将char数组转换成字符 写出去,判断的方式还是不变的main(String[] args){FileReader fw= new FileReader("c:\\Demo.java");char[] arr= new char[1024];int len =-1;while((len = fw.read(arr))!=-1){System.out.print(new String(arr,0,len));}}读和写 说完了 就要说一下 对异常的处理了在处理的时候要注意 ,关闭流的动作是一定要执行的,所以要放在finally中来完成有多少流 就要对应的有多少 finally;因为close();方法在关闭流的时候会有异常所以还要在,finally中做 try {} catch(){}处理.main(String[] args){FileWriter fw= null;try{fw= new FileWriter("c:\\Demo.java");fw.write("你好,我是程序员");}catch(Exception e){System.out.println(e.toString());}finally{try{if(fw !=null )fw.close();}catch(Exception e1){System.out.println(e1.toString());}}}
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
0 0
原创粉丝点击