Java文件(io)编程——文件字符流的使用

案例1:

读取一个文件并写入到另一个文件中,char[] 来中转。

首先要在E盘下创建一个文本文档,命名为test.txt,输入一些字符串。

 1 public class Demo_5 {
 2 
 3     public static void main(String[] args) {
 4     
 5         FileReader fr=null;                       //文件取出字符流对象(输入流)    
 6         FileWriter fw=null;                       //写入到文件(输出流)
 7 
 8         try {
 9             fr=new FileReader("e:\\test.txt");    //创建一个fr对象    
10             fw=new FileWriter("d:\\test.txt");    //创建输出对象
11             
12             char []c=new char[1024];              //读入到内存
13             int n=0;                              //记录实际读取到的字符数
14             while((n=fr.read(c))!=-1){
15                 //String s=new String(c,0,n);
16                 fw.write(c,0,n);                   
17             }
18         } catch (Exception e) {
19             e.printStackTrace();
20         }finally{
21         
22             try {
23                 fr.close();
24                 fw.close();
25             } catch (Exception e) {
26                 e.printStackTrace();
27             }
28         }        
29     }
30 }

打开D盘的test.txt文件,出现相同的字符串。

案例2:为了提高效率引入了缓冲字符流

依然实现读取一个文件并写入到另一个文件中,直接操作String。

 1 public class Demo_6 {
 2 
 3     public static void main(String[] args) {
 4 
 5         BufferedReader br=null;
 6         BufferedWriter bw=null;
 7         
 8         try{        
 9             FileReader fr=new FileReader("e:\\test.txt");   //先创建FileReader对象
10             br=new BufferedReader(fr);
11 
12             FileWriter fw=new FileWriter("d:\\test1.txt");  //创建FileWriter对象
13             bw=new BufferedWriter(fw);
14             
15             String s="";
16             while((s=br.readLine())!=null){                 //循环读取文件,s不为空即还未读完毕     
17                 bw.write(s+"\r\n");                         //输出到磁盘,加上“\r\n”为了实现换行
18             } 
19         }catch(Exception e){
20             e.printStackTrace();
21         }finally{    
22             
23             try {
24                 br.close();
25                 bw.close();
26             } catch (Exception e) {
27                 e.printStackTrace();
28             }
29         }
30     }
31 }

打开D盘的test1.txt文件,出现相同的字符串。

总结:字节流操作对象byte,字符流操作对象char,缓冲字符流操作对象String。

 

posted @ 2017-08-11 14:18  最咸的鱼  阅读(358)  评论(0编辑  收藏  举报