首页 > java > Java IO从此不再难

Java IO从此不再难

作者:bin

一、复制文件
这里使用输入输出缓冲区(BufferedInputStream、BufferedOutputStream),以提高性能,如果文件比较小的话,可以不用

@Test
public void  test12() throws IOException {
   // 输入和输出都使用缓冲流
   FileInputStream in = new FileInputStream("/Users/zengbin/Desktop/64kb.jpg");
   BufferedInputStream inBuffer = new BufferedInputStream(in);
   FileOutputStream out = new FileOutputStream("/Users/zengbin/Desktop/64kb2.jpg");
   BufferedOutputStream outBuffer = new BufferedOutputStream(out);
   int len = 0;
   byte[] bs = new byte[1024];
   long begin = System.currentTimeMillis();
   while (inBuffer.read(bs) > 0) {
      outBuffer.write(bs);
   }
   System.out.println("复制文件所需的时间:" + (System.currentTimeMillis() - begin)); // 平均时间约 200 多毫秒
   inBuffer.close();
   in.close();
   outBuffer.close();
   out.close();
}

二、逐行读取文件,逐行写入文件

@Test
public void  test13() throws IOException {
   // 输入和输出都使用缓冲流
   FileReader in = new FileReader("/Users/zengbin/Desktop/test.csv");
   BufferedReader bufferedReader = new BufferedReader(in);
   FileWriter out = new FileWriter("/Users/zengbin/Desktop/test.txt");
   BufferedWriter bufferedWriter = new BufferedWriter(out);
   String line = null;
   while ((line = bufferedReader.readLine()) != null) {
      bufferedWriter.write(line);
      bufferedWriter.write("\n");
   }
   System.out.println("复制文件所需的时间:" + (System.currentTimeMillis())); // 平均时间约 200 多毫秒
   bufferedReader.close();
   bufferedWriter.close();
   out.close();
   in.close();
}

三、读取文件内容作为字符串

@Test
public void  test14() throws IOException {
   FileReader in = new FileReader("/Users/zengbin/Desktop/test.csv");
   BufferedReader bufferedReader = new BufferedReader(in);
   StringWriter stringWriter = new StringWriter();
   String line = null;
   while ((line = bufferedReader.readLine()) != null) {
      stringWriter.write(line);
   }
   System.out.println(stringWriter);
   bufferedReader.close();
   in.close();
}

您必须 [ 登录 ] 才能发表留言!