更新時(shí)間:2019-08-27 14:09:11 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3217次
今天動(dòng)力節(jié)點(diǎn)java學(xué)院小編為大家介紹java filewriter的用法及FileReader的用法,希望對(duì)大家有幫助,下面就隨小編一起看看java filewriter的用法及FileReader的用法吧。
FileWriter 文件輸出流是用于將數(shù)據(jù)寫入 File 或 FileDescriptor 的輸出流。文件是否可用或能否可以被創(chuàng)建取決于基礎(chǔ)平臺(tái)。特別是某些平臺(tái)一次只允許一個(gè)FileOutputStream(或其他文件寫入對(duì)象)打開文件進(jìn)行寫入。在這種情況下,如果所涉及的文件已經(jīng)打開,則此類中的構(gòu)造方法將失敗。
FileOutputStream 用于寫入諸如圖像數(shù)據(jù)之類的原始字節(jié)的流。要寫入字符流,請(qǐng)考慮使用 FileWriter。
FileWriter共有五個(gè)構(gòu)造方法
FileWriter(File file) 根據(jù)給定的 File 對(duì)象構(gòu)造一個(gè) FileWriter 對(duì)象。
FileWriter(File file, boolean append) 根據(jù)給定的 File 對(duì)象構(gòu)造一個(gè) FileWriter 對(duì)象。
FileWriter(String fileName) 根據(jù)給定的文件名構(gòu)造一個(gè) FileWriter 對(duì)象。
FileWriter(String fileName, boolean append) 根據(jù)給定的文件名以及指示是否附加寫入數(shù)據(jù)的 boolean 值來構(gòu)造 FileWriter 對(duì)象。
FileWriter(FileDescriptor fd) 構(gòu)造與某個(gè)文件描述符相關(guān)聯(lián)的 FileWriter 對(duì)象。
其中方法可以分為三組,入?yún)ile的為一組,入?yún)tring 的為一組,這兩組方法基本相似。
帶File 的構(gòu)造方法是直接傳入文件來構(gòu)造FileWriter對(duì)象,而帶String 的構(gòu)造方法,則必須先通過new File(String path) 來構(gòu)造File 文件,再來構(gòu)造FileWriter對(duì)象。
再看 File file 入?yún)⒌膬蓚€(gè)方法
FileWriter(File file) 和 FileWriter(File file, boolean append) 的區(qū)別在于后面多了一個(gè)boolean append 參數(shù).
append 如果為 true,則將字節(jié)寫入文件末尾處,而不是寫入文件開始處。
append 相當(dāng)于指定了寫入的方式,是覆蓋寫還是追加寫。
append 為true時(shí),追加寫,相當(dāng)于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時(shí),覆蓋寫,相當(dāng)于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 {
/**
* 創(chuàng)建一個(gè)可以往文件中寫入字符數(shù)據(jù)的字符流輸出流對(duì)象
* 創(chuàng)建時(shí)必須明確文件的目的地
* 如果文件不存在,這回自動(dòng)創(chuàng)建。如果文件存在,則會(huì)覆蓋。
* 當(dāng)路徑錯(cuò)誤時(shí)會(huì)拋異常
*
* 當(dāng)在創(chuàng)建時(shí)加入true參數(shù),實(shí)現(xiàn)對(duì)文件的續(xù)寫。
* 當(dāng)在創(chuàng)建時(shí)加入false參數(shù),實(shí)現(xiàn)對(duì)文件的覆蓋。
*/
File f1=new File("D://a.txt");
FileWriter fw = new FileWriter(f1, true);
/**
* 調(diào)用該對(duì)象的write方法,向文件寫入字符。
*
* 其實(shí)寫入到了臨時(shí)存儲(chǔ)緩沖區(qū)中
*/
fw.write("haha");
//進(jìn)行刷新,將字符寫到目的地中。
fw.flush();
//關(guān)閉流,關(guān)閉資源。在關(guān)閉前會(huì)調(diào)用flush方法 刷新緩沖區(qū)。關(guān)閉后在寫的話,會(huì)拋IOException
fw.close();
}
}
關(guān)于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[]){
/**
* 創(chuàng)建一個(gè)可以往文件中寫入字符數(shù)據(jù)的字符流輸出流對(duì)象
* 創(chuàng)建時(shí)必須明確文件的目的地
* 如果文件不存在,這回自動(dòng)創(chuàng)建。如果文件存在,則會(huì)覆蓋。
* 當(dāng)路徑錯(cuò)誤時(shí)會(huì)拋異常
*
* 當(dāng)在創(chuàng)建時(shí)加入true參數(shù),實(shí)現(xiàn)對(duì)文件的續(xù)寫。
* 當(dāng)在創(chuàng)建時(shí)加入false參數(shù),實(shí)現(xiàn)對(duì)文件的覆蓋。
*/
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("關(guān)閉失敗!");
}
}
}
}
}
2、java FileReader的用法
示例代碼一,文件讀取的第一種方式,示例代碼二,文件讀取的第二種方式,第二種是常用的,必須會(huì)。
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[]){
/*
* 對(duì)文件的讀取一共有兩種方式,先介紹第一種讀取方式
* 步驟:
* 1.創(chuàng)建文件讀取流對(duì)象,和指定名稱的文件相關(guān)聯(lián),如果不存在指定文件的話,發(fā)生FileNotFoundException。
* 2.調(diào)用read方法,由于read一次只讀一個(gè)字符,所以要用while循環(huán)。
* 3.關(guān)閉資源塊。
*/
File f1=new File("D://a.txt");
FileReader fr = null;
try {
fr = new FileReader(f1);
int ch = 0;
//記住即可,read方法如果沒有可讀取的了,則返回-1
//所以就是一直讀取,并將讀取的內(nèi)容存入ch,一直到結(jié)尾
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[]){
/*
* 文件讀取的第二種方式:通過字符數(shù)組進(jìn)行讀取
* 步驟和第一種基本相似,但其中就是多創(chuàng)建一個(gè)字符數(shù)組
*/
File f1=new File("D://a.txt");
FileReader fr = null;
try {
fr = new FileReader(f1);
char[] buf=new char[1024];
//read(char [])返回讀到的字符個(gè)數(shù)
int num=0;
//讀取文件并把它存入buf中,用num返回讀到字符的個(gè)數(shù),一直讀到結(jié)尾
while((num=fr.read(buf)) != -1){
//new String(字符串,開始位置,結(jié)尾位置)
//字符數(shù)組里仍有空白沒有讀入的位置,所以不要了
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("讀取失敗!");
}
}
}
}
}
以上就是動(dòng)力節(jié)點(diǎn)java學(xué)院小編介紹的“java filewriter的用法及FileReader的用法”的內(nèi)容,希望對(duì)大家有幫助,更多精彩內(nèi)容請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java學(xué)院官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743