更新時間:2019-08-27 14:09:11 來源:動力節點 瀏覽3254次
今天動力節點java學院小編為大家介紹java filewriter的用法及FileReader的用法,希望對大家有幫助,下面就隨小編一起看看java filewriter的用法及FileReader的用法吧。
FileWriter 文件輸出流是用于將數據寫入 File 或 FileDescriptor 的輸出流。文件是否可用或能否可以被創建取決于基礎平臺。特別是某些平臺一次只允許一個FileOutputStream(或其他文件寫入對象)打開文件進行寫入。在這種情況下,如果所涉及的文件已經打開,則此類中的構造方法將失敗。
FileOutputStream 用于寫入諸如圖像數據之類的原始字節的流。要寫入字符流,請考慮使用 FileWriter。
FileWriter共有五個構造方法
FileWriter(File file) 根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(File file, boolean append) 根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(String fileName) 根據給定的文件名構造一個 FileWriter 對象。
FileWriter(String fileName, boolean append) 根據給定的文件名以及指示是否附加寫入數據的 boolean 值來構造 FileWriter 對象。
FileWriter(FileDescriptor fd) 構造與某個文件描述符相關聯的 FileWriter 對象。
其中方法可以分為三組,入參帶File的為一組,入參帶String 的為一組,這兩組方法基本相似。
帶File 的構造方法是直接傳入文件來構造FileWriter對象,而帶String 的構造方法,則必須先通過new File(String path) 來構造File 文件,再來構造FileWriter對象。
再看 File file 入參的兩個方法
FileWriter(File file) 和 FileWriter(File file, boolean append) 的區別在于后面多了一個boolean append 參數.
append 如果為 true,則將字節寫入文件末尾處,而不是寫入文件開始處。
append 相當于指定了寫入的方式,是覆蓋寫還是追加寫。
append 為true時,追加寫,相當于Linux 里面的 >> 操作符;
package cn.itcast.demo3;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Java_2 {
public static void main(String args[]) {
File f1=new File("D://a.txt");
//*********Found**********
File f2=new File("D://b.txt");
try {
//*********Found**********
FileReader fr=new FileReader(f2);
FileWriter fw=new FileWriter(f1,true);
int b;
//*********Found**********
while(( b=fr.read() ) != -1 ) fw.write(b);
fr.close();
fw.close();
} catch(IOException e) {
e.printStackTrace();
}
System.out.println("has done!");
//*********Found**********
if(f2.delete()) System.out.print("SUCCESS!");
}
}
append 為false時,覆蓋寫,相當于Linux 里面的 > 操作符。
1、java filewriter的用法
package cn.itcast.demo3;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Java_2 {
public static void main(String args[]) throws IOException {
/**
* 創建一個可以往文件中寫入字符數據的字符流輸出流對象
* 創建時必須明確文件的目的地
* 如果文件不存在,這回自動創建。如果文件存在,則會覆蓋。
* 當路徑錯誤時會拋異常
*
* 當在創建時加入true參數,實現對文件的續寫。
* 當在創建時加入false參數,實現對文件的覆蓋。
*/
File f1=new File("D://a.txt");
FileWriter fw = new FileWriter(f1, true);
/**
* 調用該對象的write方法,向文件寫入字符。
*
* 其實寫入到了臨時存儲緩沖區中
*/
fw.write("haha");
//進行刷新,將字符寫到目的地中。
fw.flush();
//關閉流,關閉資源。在關閉前會調用flush方法 刷新緩沖區。關閉后在寫的話,會拋IOException
fw.close();
}
}
關于FileWriter的的異常處理。
package cn.itcast.demo3;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Java_2 {
public static void main(String args[]){
/**
* 創建一個可以往文件中寫入字符數據的字符流輸出流對象
* 創建時必須明確文件的目的地
* 如果文件不存在,這回自動創建。如果文件存在,則會覆蓋。
* 當路徑錯誤時會拋異常
*
* 當在創建時加入true參數,實現對文件的續寫。
* 當在創建時加入false參數,實現對文件的覆蓋。
*/
File f1=new File("D://a.txt");
FileWriter fw = null;
try {
fw = new FileWriter(f1, false);
fw.write("hello" + "world!");
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fw != null){
try {
fw.flush();
fw.close();
} catch (IOException e) {
throw new RuntimeException("關閉失敗!");
}
}
}
}
}
2、java FileReader的用法
示例代碼一,文件讀取的第一種方式,示例代碼二,文件讀取的第二種方式,第二種是常用的,必須會。
package cn.itcast.demo3;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Java_2 {
public static void main(String args[]){
/*
* 對文件的讀取一共有兩種方式,先介紹第一種讀取方式
* 步驟:
* 1.創建文件讀取流對象,和指定名稱的文件相關聯,如果不存在指定文件的話,發生FileNotFoundException。
* 2.調用read方法,由于read一次只讀一個字符,所以要用while循環。
* 3.關閉資源塊。
*/
File f1=new File("D://a.txt");
FileReader fr = null;
try {
fr = new FileReader(f1);
int ch = 0;
//記住即可,read方法如果沒有可讀取的了,則返回-1
//所以就是一直讀取,并將讀取的內容存入ch,一直到結尾
while((ch=fr.read()) != -1){
System.out.print((char)ch + " ");
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fr != null){
try {
fr.close();
} catch (IOException e) {
throw new RuntimeException("讀取失敗!");
}
}
}
}
}
package cn.itcast.demo3;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Java_2 {
public static void main(String args[]){
/*
* 文件讀取的第二種方式:通過字符數組進行讀取
* 步驟和第一種基本相似,但其中就是多創建一個字符數組
*/
File f1=new File("D://a.txt");
FileReader fr = null;
try {
fr = new FileReader(f1);
char[] buf=new char[1024];
//read(char [])返回讀到的字符個數
int num=0;
//讀取文件并把它存入buf中,用num返回讀到字符的個數,一直讀到結尾
while((num=fr.read(buf)) != -1){
//new String(字符串,開始位置,結尾位置)
//字符數組里仍有空白沒有讀入的位置,所以不要了
System.out.print((new String(buf,0,num)));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fr != null){
try {
fr.close();
} catch (IOException e) {
throw new RuntimeException("讀取失敗!");
}
}
}
}
}
以上就是動力節點java學院小編介紹的“java filewriter的用法及FileReader的用法”的內容,希望對大家有幫助,更多精彩內容請繼續關注動力節點java學院官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習