日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java一行一行的读文件和简单的写文件

發布時間:2025/7/14 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java一行一行的读文件和简单的写文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在java的實驗作業中,有一個是從我們的txt文件中讀取矩陣。其中數與數之間是用\t隔開。行與行之間是用\n跳過。本人java學藝不精,所以我只有自行詢問度娘。得知了一個可以從文件中一行一行的讀取內容的函數readLn()。并且在讀取過程中可以直接把每行的換行符去掉。可謂非常方便(其他盆友如果需要換行符自己加上去即可)

首先我們了解下這個類

模塊?java.base 包?java.io

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()方法
那么讓我們看看這個類
模塊?java.base 包?java.io

類FileWriter

  • java.lang.Object繼承
    • java.io.Writer中
      • java.io.OutputStreamWriter中
        • java.io.FileWriter
  • 所有已實現的接口:
    Closeable,Flushable,Appendable,AutoCloseable
  公共類FileWriter 擴展了OutputStreamWriter 用于編寫字符文件的便捷類。此類的構造函數假定默認字符編碼和默認字節緩沖區大小是可接受的。要自己指定這些值,請在FileOutputStream上構造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 Writes a portion of an array of characters. Specified by:
write?in class?Writer
Parameters:
cbuf?- Buffer of characters
off?- Offset from which to start writing characters
len?- Number of characters to write
Throws:
IndexOutOfBoundsException?- If?off?is negative, or?len?is negative, or?off + len?is 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表示你要截取的長度

轉載于:https://www.cnblogs.com/hitycy/p/10552825.html

總結

以上是生活随笔為你收集整理的Java一行一行的读文件和简单的写文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。