【发布时间】:2012-04-22 14:12:48
【问题描述】:
read_data = new BufferedReader( new FileReader(args[0]) );
data_buffer = new StringBuffer();
int i;
while(read_data.ready())
{
while((i = read_data.read()) != -1)
{
data_buffer.append((char)i);
}
}
data_buffer.append(System.getProperty("line.separator"));
我想要做的是,将整个 .txt 文件读入一个字符串并在字符串中附加一个换行符。然后可以通过传递 data_buffer.toString() 创建一个新的 Scanner 来处理这个字符串。显然,对于非常大的文件,此过程会占用大量时间,而我要做的只是将换行符添加到已读入内存的 .txt 文件中。
我知道整个想法似乎有点古怪或奇怪,但有没有更快的方法?
干杯:)
【问题讨论】:
-
好吧,至少,将 StringBuffer 初始化为文件的长度(如果你知道的话)或至少一个相当大的数字,以最小化重新分配操作。
-
谢谢。我发现这个链接也做得很好,所以对于碰巧想知道我的人的其他人:weblogs.java.net/blog/pat/archive/2004/10/stupid_scanner.html
标签: java file-io java.util.scanner