簡體   English   中英

使用BufferedReader和FileReader從文件讀取

[英]read from a file using BufferedReader, and FileReader

我對Java相對較新,並且對如何使用緩沖讀取器從文件讀取感到好奇。 原因是我要上一堂課,並被分配做一個簡單的終止密碼,我應該解密一個文本文件,創建一個新文件,然后將解密后的文本放入該文件中。 我能夠使用掃描儀和一個10KB的小文件來執行此操作,但是在處理我將要測試的100MB的大文本文件時,速度非常慢。 這是我應該讀取文件內容的代碼。

public static void main(String[] args)
{
    BufferedReader br = null;
    FileReader file = null;
    String line = null;
    String all = null;
    try
    {
        file = new FileReader("myfile.txt");
        br = new BufferedReader(file);
        while ((line = br.readLine()) != null) {
            all += line;
        }
    }catch(Exception e)
    {
        System.out.println("nope");
    }
    System.out.println(all);

}

如果有人可以指出我正確的方向,那就太好了。

提前致謝

流式傳輸,請勿將其讀入內存。 另外,我希望嘗試使用資源(因為您需要關閉資源)。 而且您可以隨時調整緩沖區大小,例如-

final int size = 1024 * 1024;
try (BufferedReader br = new BufferedReader(new FileReader("myfile.txt"), size)) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line); // <-- stream it
    }
} catch (Exception e) {
    e.printStackTrace();
}

而且永遠不要吞下Exception -“不”不是很有幫助。

Java中的字符串是不可變的,因此每次運行此代碼時

all += line;

它創建一個新的String並分配給所有,使用StringBuider或StringBuffer

例如

StringBuilder all = new StringBuilder();

希望能幫助到你!

暫無
暫無

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

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