簡體   English   中英

在java中,如何編輯文本文件的1行?

[英]In java, how do i edit 1 line of a text file?

好的,所以我知道線的價值,我沒有行號,我怎么只編輯1行?

它是一個配置文件,即x = y我想要一個命令來編輯x = y到x = y,z。

甚至x = z。

如果您使用的是該配置格式,則可能需要使用

java.util.Properties

要讀取/寫入該文件的組件。

但是如果您只是想手動編輯它,您可以逐行讀取文件並匹配您想要更改的變量。

在Java中,您可以使用`Properties類:
app.config文件:

x=y

Java的:

  public void writeConfig() throws Exception {
    Properties tempProp = new Properties();
    tempProp.load(new FileInputStream("app.config")); 
    tempProp.setProperty("x", "y,z");
    tempProp.store(new FileOutputStream("app.config"), null); 

  }

一種方法是:

  1. 將文件讀入內存; 例如,作為表示文件行的字符串數組。
  2. 找到要更改的字符串/行。
  3. 使用正則表達式(或其他)來修改字符串/行
  4. 從內存版本中寫入新版本的文件。

這有很多變化。 在編寫新版本的文件時還需要注意,以防止在寫入過程中出現問題時丟失所有內容。 (通常,您將新版本寫入臨時文件,將舊版本重命名(例如作為備份)並重命名新版本以代替舊版本。)

不幸的是,如果不重寫文件的大部分內容,就無法在常規文本文件的中間添加或刪除字符。 這個“問題”並不特定於Java。 它是在大多數主流操作系統上建模/表示文本文件的方式的基礎。

除非新線的長度與舊線完全相同,否則最好的選擇是

  • 打開臨時輸出文件
  • 逐行讀取配置文件
  • 搜索你的密鑰
  • 如果找不到,只需將剛剛讀取的行寫入輸出文件即可
  • 如果可以找到它,請將新值寫入臨時文件
  • 直到你打EOF
  • 刪除舊文件
  • 將新文件重命名為舊文件

如果您的配置文件很小,您還可以在內存中執行整個解析/修改步驟,然后將最終結果寫回配置文件,這樣就可以跳過臨時文件(盡管臨時文件是防止損壞的好方法如果你在寫文件時出現問題)。

如果這不是您想要的,那么您應該更清楚地編輯您的問題。 我只想猜你要的是什么。

如果您的數據是所有鍵和值對,例如......

鍵1 =值

鍵2 =值

...然后將它們加載到Properties對象中。 在我的腦海中,您需要一個FileInputStream來加載屬性,使用myProperties.put(key,value)進行修改,然后使用FileOutputStream保存屬性。

希望這可以幫助!

RH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM