簡體   English   中英

用Java將字符串寫入文件並讀回

[英]Writing strings to a file in Java and reading them back

我在Java中有一組字符串( String對象),想將它們寫入文件中,以便以后可以檢索它們。

我知道Java使用UTF-16在內部存儲字符串。 我擔心除非格式化,否則我可能會因為格式化問題而弄亂東西。 我不想將原始的String對象轉儲到文件中,因為我希望能夠在標准文本編輯器中打開文件以查看它,其中每個字符串都以一種明智的方式顯示在其自己的行上(假設沒有字符串包含換行符)。

我可以簡單地將PrintWriter類與println(String x)方法一起使用(假設字符串中沒有換行),並在回讀它們時與Scanner類的nextLine()方法結合使用嗎? 這樣可以保證我得到完全相同的字符串嗎?

此外,假設字符串確實包含換行符,那么編寫它們的合適方法是什么? 我是否應該過濾掉換行符(用一些臨時的轉義代碼或類似的換行符代替),並在上面將println方法與PrintWriter一起使用?

為了完整起見,我用我最終采用的解決方案回答了自己的問題。 回想起來,該解決方案非常簡單。 咄!

要編寫字符串,我使用BufferedWriter類,該類具有方便的編寫字符串的方法。 BufferedWriter通過以下方式獲得:

writer = new BufferedWriter(
             new OutputStreamWriter(
                 new FileOutputStream(filename), "UTF-8"));

在這里,我指定了幾乎所有內容都支持的UTF-8編碼。

要讀回字符串,我使用BufferedReader類,並確保使用UTF-8編碼:

reader = new BufferedReader(
             new InputStreamReader(
                 new FileInputStream(filename), "UTF-8"));

暫無
暫無

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

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