1 public class CopyTextTest_2 { 2 3 private static final int BUFFER_SIZE = 1024; 4 public static void main(String[] args) { 5 6 FileReader fr = null; 7 FileWriter fw = null; 8 try { 9 //创建字节输入流,选择要读取数据的文件 10 fr = new FileReader("IO流_2.txt"); 11 //创建字节输出流,选择要写入数据的文件 12 fw = new FileWriter("copytest_2.txt"); 13 14 //创建一个临时容器,用于缓存读取到的字符。 15 char[] buf = new char[BUFFER_SIZE];//这就是缓冲区。 16 17 //定义一个变量记录读取到的字符数,(其实就是往数组里装的字符个数 ) 18 int len = 0; 19 //循环从输入流中取出的数据 20 while((len=fr.read(buf))!=-1){ 21 //每读取一次,即写入文件输入流,读多少写多少 22 fw.write(buf, 0, len); 23 } 24 25 } catch (Exception e) { 26 // System.out.println("读写失败"); 27 throw new RuntimeException("读写失败"); 28 }finally{ 29 if(fw!=null) 30 try { 31 fw.close(); 32 } catch (IOException e) { 33 34 e.printStackTrace(); 35 } 36 if(fr!=null) 37 try { 38 fr.close(); 39 } catch (IOException e) { 40 41 e.printStackTrace(); 42 } 43 } 44 } 45 46 }
使用缓冲流:
1 public static void main(String[] args) { 2 FileReader fr=null; 3 FileWriter fw=null; 4 BufferedReader br=null; 5 BufferedWriter bw=null; 6 try { 7 fr=new FileReader("e://test.txt"); 8 fw=new FileWriter("e://newFile.txt"); 9 br=new BufferedReader(fr); 10 bw=new BufferedWriter(fw); 11 12 String line=null; 13 while ((line=br.readLine())!=null) { 14 bw.write(line); 15 } 16 } catch (IOException e) { 17 18 e.printStackTrace(); 19 }finally{ 20 try { 21 //要关闭缓冲流,这样数据才会被刷新然后写入到新的文件中 22 bw.close(); 23 br.close(); 24 } catch (IOException e) { 25 26 e.printStackTrace(); 27 } 28 } 29 30 } 31
时间: 2024-11-14 21:53:12