IO流之 檔案操作字元流

ckxllf發表於2020-03-18

  1. 檔案操作輸入字元流

  FileReader 檔案操作輸入字元流

  Constructor 構造方法

  FileReader(File file)

  根據File類物件建立對應的FileReader字元流輸入物件

  FileReader(String pathName)

  根據String型別檔案路徑建立對應的FileReader字元流輸入物件

  如果檔案不存在,丟擲異常FileNotFoundException

  Method 成員方法

  int read();

  讀取檔案中的一個字元資料,透過返回值返回,返回值型別是int型別,但是在int類

  型中有且只有低16位資料有效

  int read(char[] arr);

  讀取檔案中的資料儲存到字元陣列中,返回值型別是讀取到的字元個數

  int read(char[] arr, int off, int len);

  讀取檔案中的資料儲存到字元陣列中,要求從陣列中下標offset開始,到len結束,返

  回值型別是讀取到的字元個數

  程式碼展示

  public class Demo1 {

  public static void main(String[] args) {

  long start = System.currentTimeMillis();

  readTest2();

  long end = System.currentTimeMillis();

  System.out.println("Time : " + (end - start));

  }

  // 10

  public static void readTest2() {

  FileReader fileReader = null;

  try {

  fileReader = new FileReader(new File("G:/test/1.txt"));

  char[] buf = new char[1024 * 4];

  int length = -1;

  while ((length = fileReader.read(buf)) != -1) {

  System.out.println(new String(buf, 0, length));

  }

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } finally {

  if (fileReader != null) {

  try {

  fileReader.close();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  }

  }

  // 300

  public static void readTest1() {

  FileReader fileReader = null;

  try {

  fileReader = new FileReader(new File("G:/test/1.txt"));

  int content = -1;

  while ((content = fileReader.read()) != -1) {

  System.out.println((char) content);

  }

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } finally {

  if (fileReader != null) {

  try {

  fileReader.close();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  }

  }

  }

  2. 檔案操作輸出字元流

  FileWriter檔案操作輸出字元流

  Constructor 構造方法

  FileWriter(File file);

  根據File類物件建立對應檔案的檔案操作輸出字元流

  FileWriter(String pathName);

  根據String型別檔案路徑建立對應檔案的檔案操作輸出字元流

  FileWriter(File file, boolean append);

  根據File類物件建立對應檔案的檔案操作輸出字元流,並要求為追加寫

  FileWriter(String pathName, boolean append);

  根據String型別檔案路徑建立對應檔案的檔案操作輸出字元流,並要求為追加寫

  如果建立FileWrite物件時,這裡檔案不存在,路徑合法,這裡會建立對應的操作檔案。如果路徑不合法,丟擲異常 FileNotFoundException

  Method 成員方法

  void write(int ch);

  寫入一個char型別資料到檔案中

  void write(char[] arr);

  寫入一個char型別陣列到檔案中

  void write(char[] arr, int offset, int length);

  寫入一個char型別陣列到檔案中,要求從offset下標位置開始讀取陣列資料,長度為

  length

  void write(String str);

  寫入一個字串到檔案中

  void write(String str, int offset, int lenght);

  寫入一個字串到檔案中,要求從指定字串offset下標位置開始,長度為length

  如果寫入資料操作過程中,發生問題,這裡會有一個IOException

  程式碼展示

  public class Demo1 {

  public static void main(String[] args) {

  FileWriter fileWriter = null;

  try { 鄭州做人流醫院哪家好

  fileWriter = new FileWriter(new File("G:/test/1.txt"), true);

  char[] charArray = "為天地立心".toCharArray();

  fileWriter.write(charArray);

  fileWriter.write("為生民立命");

  fileWriter.write("\r\n");

  fileWriter.write(charArray, 0, 5);

  fileWriter.write("為往聖繼絕學", 0, 5);

  } catch (IOException e) {

  e.printStackTrace();

  } finally {

  if (fileWriter != null) {

  try {

  fileWriter.close();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  }

  }

  private static void writeTest1() {

  FileWriter fileWriter = null;

  try {

  fileWriter = new FileWriter(new File("G:/test/2.txt"), true);

  fileWriter.write('武');

  fileWriter.write('漢');

  fileWriter.write('加');

  fileWriter.write('油');

  fileWriter.write(',');

  fileWriter.write('中');

  fileWriter.write('國');

  fileWriter.write('加');

  fileWriter.write('油');

  fileWriter.write(',');

  fileWriter.write('世');

  fileWriter.write('界');

  fileWriter.write('加');

  fileWriter.write('油');

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } finally {

  if (fileWriter != null) {

  try {

  fileWriter.close();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2681095/,如需轉載,請註明出處,否則將追究法律責任。

相關文章