Java一行一行的读文件和简单的写文件
讀
在java的實(shí)驗(yàn)作業(yè)中,有一個(gè)是從我們的txt文件中讀取矩陣。其中數(shù)與數(shù)之間是用\t隔開(kāi)。行與行之間是用\n跳過(guò)。本人java學(xué)藝不精,所以我只有自行詢問(wèn)度娘。得知了一個(gè)可以從文件中一行一行的讀取內(nèi)容的函數(shù)readLn()。并且在讀取過(guò)程中可以直接把每行的換行符去掉。可謂非常方便(其他盆友如果需要換行符自己加上去即可)
首先我們了解下這個(gè)類
模塊?java.base 包?java.ioClass BufferedReader
- java.lang.Object繼承
-
- java.io.Reader中
-
- java.io.BufferedReader中
- 所有已實(shí)現(xiàn)的接口:
- Closeable,AutoCloseable,Readable
直接已知子類:- LineNumberReader
可以指定緩沖區(qū)大小,或者可以使用默認(rèn)大小。對(duì)于大多數(shù)用途,默認(rèn)值足夠大。
通常,由Reader構(gòu)成的每個(gè)讀取請(qǐng)求都會(huì)導(dǎo)致相應(yīng)的讀取請(qǐng)求由基礎(chǔ)字符或字節(jié)流構(gòu)成。因此,建議將BufferedReader包裝在任何read()操作可能代價(jià)高昂的Reader上,例如FileReaders和InputStreamReaders。例如,
BufferedReader in = new BufferedReader(new FileReader(“foo.in”));//"foo.in"直接換上我們的要讀取的文件的路徑(相對(duì)絕對(duì)都可以)。我們就可以用這個(gè)方法了。注意 new FileReader()方法個(gè)人覺(jué)得相當(dāng)于c語(yǔ)言的獲得文件指針
將緩沖指定文件的輸入。如果沒(méi)有緩沖,read()或readLine()的每次調(diào)用都可能導(dǎo)致從文件中讀取字節(jié),轉(zhuǎn)換為字符,然后返回,這可能是非常低效的。
? ?
在接著我們使用in.readLine()就可以了。它會(huì)一次讀取被讀取文件的每一行,并且返回這一行形成的String line = in.readLine();//讀取文件中矩陣的一行
接著我們就可以使用它們來(lái)進(jìn)行我們的操作
使用完成后記得使用in.close()來(lái)關(guān)閉避免浪費(fèi)資源
?寫(xiě)由于題目比較簡(jiǎn)單我也沒(méi)有深究。只使用到了write()方法
那么讓我們看看這個(gè)類
模塊?java.base 包?java.io
類FileWriter
- java.lang.Object繼承
-
- java.io.Writer中
-
- java.io.OutputStreamWriter中
-
- java.io.FileWriter
- 所有已實(shí)現(xiàn)的接口:
- Closeable,Flushable,Appendable,AutoCloseable
文件是否可用或是否可以創(chuàng)建取決于底層平臺(tái)。特別是某些平臺(tái)允許一次只打開(kāi)一個(gè)文件FileWriter(或其他文件寫(xiě)入對(duì)象)來(lái)打開(kāi)文件。在這種情況下,如果涉及的文件已經(jīng)打開(kāi),則此類中的構(gòu)造函數(shù)將失敗。
FileWriter用于編寫(xiě)字符流。要編寫(xiě)原始字節(jié)流,請(qǐng)考慮使用a?FileOutputStream。
我使用的是第三個(gè)構(gòu)造方法。在沒(méi)有參數(shù)或者參數(shù)為false的情況下,他會(huì)清空這個(gè)文件。在參數(shù)為true的情況下,他會(huì)在原有數(shù)據(jù)的基礎(chǔ)上添加內(nèi)容。
fw = new FileWriter("src/P1/txt/6.txt",true);
public?void?write?(char[]?cbuf,int?off,int?len)throws IOException Writes a portion of an array of characters. Specified by:fw.write(magic[i][j] + "\t");
關(guān)于off表示偏移量
len表示你要截取的長(zhǎng)度
轉(zhuǎn)載于:https://www.cnblogs.com/hitycy/p/10552825.html
總結(jié)
以上是生活随笔為你收集整理的Java一行一行的读文件和简单的写文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [luogu1131][bzoj1060
- 下一篇: [TJOI2013]循环格