[英]Is there a way in Java to read new line characters in a text file?
我正在實施霍夫曼編碼程序。 我對整本書進行編碼和解碼,因此找到換行符非常重要,但不幸的是我忽略了一些東西。 目前,我使用一種方法將小書讀入一個String然后返回,見下圖:
private String readFile(String filename) {
String curLine;
String toReturn = "";
try {
BufferedReader reader = new BufferedReader(new FileReader(filename));
try {
while ((curLine = reader.readLine()) != null) {
toReturn += curLine;
}
} catch (IOException e) {
System.out.println(e);
}
} catch (FileNotFoundException e) {
System.out.println(e);
}
return toReturn;
}
這適用於常規字符,但不適用於換行符之類的東西(我知道這些類型的“字符”有一個詞,但我現在正在空白中)。 無論如何,我的問題是如何更改當前方法以同時拾取 newLine 字符,或者我是否需要做一些完全不同的事情。 由於這個原因,我懷疑 readLine() 現在對我沒有好處,但我想在這里檢查一些輸入。
我的程序中的其他一切都很好,但是沒有考慮換行符這一事實弄亂了我的整個霍夫曼樹,我相信你明白從那里發生的事情。 任何關於我可以做些什么來拾取換行符的建議都將不勝感激。 謝謝!
您可以像這樣讀取文件中的所有字符。
static String readFile(String filename) throws IOException {
return Files.readString(Path.of(filename));
}
它讀取為 UTF-8,但如果需要,您可以使用readString()
的第二個參數指定編碼。
正如上面評論中所建議的,您需要一種面向字節的方法。
從java 7開始,您可以使用Files.readAllBytes(filepath)
方法。 您可以通過這種方式將整個文件內容作為字符串傳遞;
new String(Files.readAllBytes(filepath));
從java 11 開始,您現在可以選擇使用Files.readString(filepath)
來更漂亮地完成相同的操作。
您可以參考此博客,了解將整個文件讀取為 String 的更詳細選項,包括BufferedReader
; https://howtodoinjava.com/java/io/java-read-file-to-string-examples/
我猜你正在尋找來自番石榴核心庫的 Files.toString() 。
String content = Files.toString(new File("sample_file.txt"), Charsets.UTF_8);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.