在Java中高效地解析和写入文件
我有一个没有新行字符的文件。我希望每160个字符有一个新行字符 为此,我读取文件,然后执行以下操作:在Java中高效地解析和写入文件,java,string,Java,String,我有一个没有新行字符的文件。我希望每160个字符有一个新行字符 为此,我读取文件,然后执行以下操作: String newLine = ""; int lineSize = 160; char[] line = new char[lineSize]; while (rEntrada.read(line) > 0) { newLine = new String(line); String parsedLine = parseLine(newLine, date); fw.w
String newLine = "";
int lineSize = 160;
char[] line = new char[lineSize];
while (rEntrada.read(line) > 0) {
newLine = new String(line);
String parsedLine = parseLine(newLine, date);
fw.write(parsedLine);
}
其中parseLine负责对该行进行一些额外的解析。我的主要问题是,在while循环中执行“新字符串”是否效率低下,或者不建议这样做,或者在这段代码中您是否看到了可以做得更好的内容。我真的在努力提高编码水平
谢谢 看看StringBuffer,看看它在这种情况下是否不可用
如果您不是多线程的,可能也会感兴趣。这对我来说很好,我能看到的唯一低效之处是
parseLine
是否可以写得更好,可能是通过line
而不是newLine
。这取决于parseLine的实际功能。试试这个
- 首先读一行
FileReader r = new FileReader(new File("<file-name>")); // A buffered reader is fast BufferedReader = reader = new BufferedReader(r);
- 现在迭代字符串并在每160个位置插入一个
\n
StringBuilder sb = new StringBuilder(); int counter = 0;
- 现在您可以将这一行写入文件
i==0
检查吗?如果行的长度更大,它可能会引发异常。但我编辑了一个新的更好的答案。我仍然不喜欢这样,为什么在追加\n
之前,在知道要追加160个字符时,每次追加一个字符?同样如此。它更容易理解,而且我们需要\n
之间的每个字符
StringBuilder sb = new StringBuilder();
int counter = 0;
for (int i=0; i<line.length(); i++){
sb.append(line.charAt(i));
counter++;
if (counter==160){
sb.append("\n");
counter = 0;
}
}
line = sb.toString();