【发布时间】:2011-09-01 20:10:44
【问题描述】:
几乎每个代码示例都会逐行读取 TXT 文件并将其存储在字符串数组中。 我不想要逐行处理,因为我认为这对我的要求来说是不必要的资源浪费:我要做的就是快速有效地将 .txt 内容转储到单个字符串中。下面的方法可以完成这项工作,但是有一个缺点:
private static String readFileAsString(String filePath) throws java.io.IOException{
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
if (f != null) try { f.close(); } catch (IOException ignored) { }
} catch (IOException ignored) { System.out.println("File not found or invalid path.");}
return new String(buffer);
}
... 缺点是换行符被转换为长空格,例如“ ”。
我希望将换行符从 \n 或 \r 转换为
(HTML 标记)。
提前谢谢你。
【问题讨论】:
-
我尝试添加此方法以将文本文件中的换行符转换为 HTML
标签,但它不起作用: string.replaceAll("(\r\n|\n)", "
"); -
逐行处理与转储整个文件一样有效(如果不是更有效),然后返回并用
<br/>标签替换换行符 -
真的,遍历每一行的循环同样有效吗?有趣..那我可能会去。谢谢!
-
@slashline - 文件中字符数据的编码是什么?
-
是从哪里来的?它可能正在剥离您要在这里处理的 \r 和 \n。