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