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();
}
}
}