讀
在java的實驗作業中,有一個是從我們的txt文件中讀取矩陣。其中數與數之間是用\t隔開。行與行之間是用\n跳過。本人java學藝不精,所以我只有自行詢問度娘。得知了一個可以從文件中一行一行的讀取內容的函數readLn()。並且在讀取過程中可以直接把每行的換行符去掉。可謂非常方便(其他盆友如果需要換行符自己加上去即可)
首先我們了解下這個類
Class BufferedReader
- java.lang.Object繼承
-
- java.io.Reader中
-
- java.io.BufferedReader中
-
- 所有已實現的接口:
-
Closeable,AutoCloseable,Readable
- 直接已知子類:
-
LineNumberReader
公共類BufferedReader 擴展了Reader
可以指定緩沖區大小,或者可以使用默認大小。對於大多數用途,默認值足夠大。
通常,由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()方法
那么讓我們看看這個類
類FileWriter
- java.lang.Object繼承
-
- java.io.Writer中
-
- java.io.OutputStreamWriter中
-
- java.io.FileWriter
-
- 所有已實現的接口:
-
Closeable,Flushable,Appendable,AutoCloseable
公共類FileWriter 擴展了OutputStreamWriter
文件是否可用或是否可以創建取決於底層平台。特別是某些平台允許一次只打開一個文件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
- Specified by:
-
writein classWriter - Parameters:
-
cbuf- Buffer of characters -
off- Offset from which to start writing characters -
len- Number of characters to write - Throws:
-
IndexOutOfBoundsException- Ifoffis negative, orlenis negative, oroff + lenis negative or greater than the length of the given array -
IOException- If an I/O error occurs
若果你直接想寫入其中我們就直接加入字符串就可以了
fw.write(magic[i][j] + "\t");
關於off表示偏移量
len表示你要截取的長度

