1. 程式人生 > >java寫入檔案幾種方法

java寫入檔案幾種方法

  在java中我常用的向檔案中寫入新內容的三種方法,分別是FileWritter,BufferedWriter ,FileOutputStream下面我分別給各位介紹三個例項希望對你有所幫助。

  一,FileWritter寫入檔案

  FileWritter, 字元流寫入字元到檔案。預設情況下,它會使用新的內容取代所有現有的內容,然而,當指定一個true (布林)值作為FileWritter建構函式的第二個引數,它會保留現有的內容,並追加新內容在檔案的末尾。

  1. 替換所有現有的內容與新的內容。

  new FileWriter(file);2. 保留現有的內容和附加在該檔案的末尾的新內容。

  new FileWriter(file,true);

  複製程式碼

  追加檔案示例

  一個文字檔案,命名為“javaio-appendfile.txt”,幷包含以下內容。ABC Hello追加新內容 new FileWriter(file,true)

  package com.yiibai.file;

  import java.io.File;

  import java.io.FileWriter;

  import java.io.BufferedWriter;

  import java.io.IOException;

  public class AppendToFileExample

  {

  public static void main( String[] args )

  {

  try{

  String data = " This content will append to the end of the file";

  File file =new File("javaio-appendfile.txt");

  //if file doesnt exists, then create it

  if(!file.exists()){

  file.createNewFile();

  }

  //true = append file

  FileWriter fileWritter = new FileWriter(file.getName(),true);

  BufferedWriter bufferWritter = new BufferedWriter(fileWritter);

  bufferWritter.write(data);

  bufferWritter.close();

  System.out.println("Done");

  }catch(IOException e){

  e.printStackTrace();

  }

  }

  }

  複製程式碼

  結果

  現在,文字檔案“javaio-appendfile.txt”內容更新如下:ABC Hello This content will append to the end of the file

  二,BufferedWriter寫入檔案緩衝字元(BufferedWriter )是一個字元流類來處理字元資料。不同於位元組流(資料轉換成位元組),你可以直接寫字串,陣列或字元資料儲存到檔案。

  package com.yiibai.iofile;

  import java.io.BufferedWriter;

  import java.io.File;

  import java.io.FileWriter;

  import java.io.IOException;

  public class WriteToFileExample {

  public static void main(String[] args) {

  try {

  String content = "This is the content to write into file";

  File file = new File("/users/mkyong/filename.txt");

  // if file doesnt exists, then create it

  if (!file.exists()) {

  file.createNewFile();

  }

  FileWriter fw = new FileWriter(file.getAbsoluteFile());

  BufferedWriter bw = new BufferedWriter(fw);

  bw.write(content);

  bw.close();

  System.out.println("Done");

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }

  複製程式碼

  三,FileOutputStream寫入檔案

  檔案輸出流是一種用於處理原始二進位制資料的位元組流類。為了將資料寫入到檔案中,必須將資料轉換為位元組,並儲存到檔案。請參閱下面的完整的例子。

  package com.yiibai.io;

  import java.io.File;

  import java.io.FileOutputStream;

  import java.io.IOException;

  public class WriteFileExample {

  public static void main(String[] args) {

  FileOutputStream fop = null;

  File file;

  String content = "This is the text content";

  try {

  file = new File("c:/newfile.txt");

  fop = new FileOutputStream(file);

  // if file doesnt exists, then create it

  if (!file.exists()) {

  file.createNewFile();

  }

  // get the content in bytes

  byte[] contentInBytes = content.getBytes();

  fop.write(contentInBytes);

  fop.flush();

  fop.close();

  System.out.println("Done");

  } catch (IOException e) {

  e.printStackTrace();

  } finally {

  try {

  if (fop != null) {

  fop.close();

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }

  }

  更新的JDK7例如,www.111cn.net使用新的“嘗試資源關閉”的方法來輕鬆處理檔案。

  package com.yiibai.io;

  import java.io.File;

  import java.io.FileOutputStream;

  import java.io.IOException;

  public class WriteFileExample {

  public static void main(String[] args) {

  File file = new File("c:/newfile.txt");

  String content = "This is the text content";

  try (FileOutputStream fop = new FileOutputStream(file)) {

  // if file doesn't exists, then create it

  if (!file.exists()) {

  file.createNewFile();

  }

  // get the content in bytes

  byte[] contentInBytes = content.getBytes();

  fop.write(contentInBytes);

  fop.flush();

  fop.close();

  System.out.println("Done");

  } catch (IOException e) {

  e.printStackTrace();

  }

  }

  }