我有一个没有新行字符的文件。我想要一个每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.write(parsedLine);
}
其中parseLine负责对该行进行一些额外的解析。我的主要问题是,如果在while循环中执行“new String”效率低或不推荐,或者如果你们看到在这段代码中可以做得更好的话。我真的想在编码方面做得更好!
谢谢!
答案 0 :(得分:2)
试试这个。
首先阅读单行。
FileReader r = new FileReader(new File("<file-name>"));
// A buffered reader is fast
BufferedReader = reader = new BufferedReader(r);
String line = reader.readLine();
// Also use try-catch blocks!
现在迭代字符串并在每160 th 位置插入一个\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();
现在您可以将此行写入该文件。
答案 1 :(得分:1)
对我来说这看起来不错,我能看到的唯一效率低下的问题是parseLine
是否可以写得更好,可能是line
而不是newLine
。这取决于parseLine
实际做了什么。
答案 2 :(得分:0)