1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

java读写文件

总结整理一下Java文件操作的几种方式。无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外。Java读写文件一般是通过字节、字符和行三种方式来进行文件的操作。

import java.io.BufferedOutputStream;  import java.io.BufferedReader;  import java.io.BufferedWriter;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.FileWriter;  import java.io.IOException;  import java.io.InputStream;  import java.io.InputStreamReader;  import java.io.OutputStreamWriter;  import java.io.Reader;    public class FileUtil {        /**       * 按行读取文件       */      public static void ReadFileByLine(String filename) {          File file = new File(filename);          InputStream is = null;          Reader reader = null;          BufferedReader bufferedReader = null;          try {              is = new FileInputStream(file);              reader = new InputStreamReader(is);              bufferedReader = new BufferedReader(reader);              String line = null;              while ((line = bufferedReader.readLine()) != null) {                  System.out.println(line);              }            } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  if (null != bufferedReader)                      bufferedReader.close();                  if (null != reader)                      reader.close();                  if (null != is)                      is.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }        /**       * 按字节读取文件       *        * @param filename       */      public static void ReadFileByBytes(String filename) {          File file = new File(filename);          InputStream is = null;          try {              is = new FileInputStream(file);              int index = 0;              while (-1 != (index = is.read())) {                  System.out.write(index);              }          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } finally {              try {                  if (null != is)                      is.close();                } catch (IOException e) {                  e.printStackTrace();              }          }          System.out.println("-----------------------------------");          try {              is = new FileInputStream(file);              byte[] tempbyte = new byte[1000];              int index = 0;              while (-1 != (index = is.read(tempbyte))) {                  System.out.write(tempbyte, 0, index);              }          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } finally {              try {                  if (null != is)                      is.close();                } catch (IOException e) {                  e.printStackTrace();              }          }      }        /**       * 按字符读取文件       *        * @param filename       */      public static void ReadFileByChar(String filename) {          File file = new File(filename);          InputStream is = null;          Reader isr = null;          try {              is = new FileInputStream(file);              isr = new InputStreamReader(is);              int index = 0;              while (-1 != (index = isr.read())) {                  System.out.print((char) index);              }          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } finally {              try {                  if (null != is)                      is.close();                  if (null != isr)                      isr.close();              } catch (IOException e) {                  e.printStackTrace();              }          }      }        /**       * 通过OutputStreamWriter写文件       *        * @param filename       */      public static void Write2FileByOutputStream(String filename) {          File file = new File(filename);          FileOutputStream fos = null;          // BufferedOutputStream bos = null;          OutputStreamWriter osw = null;          try {              if (!file.exists()) {                  file.createNewFile();              }              fos = new FileOutputStream(file);              osw = new OutputStreamWriter(fos);              osw.write("Write2FileByOutputStream");              // bos = new BufferedOutputStream(fos);              // bos.write("Write2FileByOutputStream".getBytes());          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } finally {              if (null != osw) {                  try {                      osw.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }              if (null != fos) {                  try {                      fos.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }          }      }        /**       * 通过BufferedWriter写文件       *        * @param filename       */      public static void Write2FileByBuffered(String filename) {          File file = new File(filename);          FileOutputStream fos = null;          OutputStreamWriter osw = null;          BufferedWriter bw = null;          try {              if (!file.exists()) {                  file.createNewFile();              }              fos = new FileOutputStream(file);              osw = new OutputStreamWriter(fos);              bw = new BufferedWriter(osw);              bw.write("Write2FileByBuffered");          } catch (FileNotFoundException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } finally {              if (null != bw) {                  try {                      bw.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }              if (null != osw) {                  try {                      osw.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }              if (null != fos) {                  try {                      fos.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }          }      }        /**       * 通过FileWriter写文件       *        * @param filename       */      public static void Write2FileByFileWriter(String filename) {          File file = new File(filename);          FileWriter fw = null;          try {              if (!file.exists()) {                  file.createNewFile();              }              fw = new FileWriter(file);              fw.write("Write2FileByFileWriter");          } catch (IOException e) {              e.printStackTrace();          } finally {              if (null != fw) {                  try {                      fw.close();                  } catch (IOException e) {                      e.printStackTrace();                  }              }          }      }        public static void main(String[] args) {          String filename = "D:/testfile.txt";          // ReadFileByLine(filename);          // ReadFileByBytes(filename);          // ReadFileByChar(filename);          String writeFile = "javawrite2file.txt";          // Write2FileByOutputStream(writeFile);          // Write2FileByBuffered(writeFile);          Write2FileByFileWriter(writeFile);      }  }

Java读写文件的大体情况应该就上面的几种方式,然而从效率的角度来讲。InputStream、OutputStream的效率比BufferedInputStream、BufferedOutputStream的效率要差,至于Reader、Writer没做进一步的比较。网上看到一些资料说Java.nio的效率最高,没有进一步做比较,不得而知了,等有时间再做进一步测试吧。

本文转载 https://www.cnblogs.com/rwxwsblog/p/4798855.html

原文链接:https://www.qiquanji.com/post/8366.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: