Java:将字符串从一个文件复制到另一个文件,而不丢失';换行格式';
如果标题有误导性/错误,请提前表示歉意,但在花了很长一天时间练习Java之后,这是我能做的最好的了。(我的大脑在融化) 我将这段代码放在一起读取一个文件并将其复制到另一个文件中,跳过以给定字符串开头的行(BeginOfTheLineToRemove)。它实际上可以工作并删除所需的行,但由于某种原因,它忘记了\n(换行符)。将复制间距和符号。我想不出来。我真的希望有人能帮忙。来自意大利的爪哇新手的欢呼声;)Java:将字符串从一个文件复制到另一个文件,而不丢失';换行格式';,java,string,copy,format,Java,String,Copy,Format,如果标题有误导性/错误,请提前表示歉意,但在花了很长一天时间练习Java之后,这是我能做的最好的了。(我的大脑在融化) 我将这段代码放在一起读取一个文件并将其复制到另一个文件中,跳过以给定字符串开头的行(BeginOfTheLineToRemove)。它实际上可以工作并删除所需的行,但由于某种原因,它忘记了\n(换行符)。将复制间距和符号。我想不出来。我真的希望有人能帮忙。来自意大利的爪哇新手的欢呼声;) 使用pw.println而不是pw.write。println在写入内容后添加新行字符。使
使用
pw.println
而不是pw.write
。println在写入内容后添加新行字符。使用pw.println
而不是pw.write
。println在写入内容后添加新行字符。可能会对您有所帮助
BufferedReader.readLine()方法不读取任何行终止字符。因此,您的行将不包含任何终止字符。可能会对您有所帮助
BufferedReader.readLine()方法不读取任何行终止字符。因此,您的行将不包含任何终止字符。您正在使用
PrintWriter.write()
来写入行-默认情况下,这不会在末尾写入换行符。改为使用println()
。您正在使用PrintWriter.write()
来写入行-默认情况下,这不会在末尾写入换行符。改为使用println()
。BufferedReader.readLine()使用换行符标识行的结尾,它返回的字符串不包含此换行符。换行符是分隔符,因此不被视为数据的一部分
为了补偿这一点,您可以在输出中添加换行符,如下所示:
while((line = br.readLine()) != null) {
if(line.startsWith(LineToRemoveThatBeginWithThis)) continue;
pw.write(line);
pw.println();
}
对PrintWriter.println()的额外调用将在您写出文本行后打印一个换行符。BufferedReader.readLine()使用换行符标识行的结尾,它返回的字符串不包含此换行符。换行符是分隔符,因此不被视为数据的一部分
为了补偿这一点,您可以在输出中添加换行符,如下所示:
while((line = br.readLine()) != null) {
if(line.startsWith(LineToRemoveThatBeginWithThis)) continue;
pw.write(line);
pw.println();
}
对PrintWriter.println()的额外调用将在您写出一行文本后打印一个换行符。文档说明:
返回:包含行内容的字符串,不包括任何行终止字符,如果已到达流的结尾,则返回null
也就是说,读取器会从字符串中删除行终止字符,因此您需要再次手动添加它们:
// \n on Linux/Mac, \r\n on Windows
String lineSep = System.getProperty("line.separator");
pw.write(line);
pw.write(lineSep);
文件说:
返回:包含行内容的字符串,不包括任何行终止字符,如果已到达流的结尾,则返回null
也就是说,读取器会从字符串中删除行终止字符,因此您需要再次手动添加它们:
// \n on Linux/Mac, \r\n on Windows
String lineSep = System.getProperty("line.separator");
pw.write(line);
pw.write(lineSep);
在回路外部获取系统的线路分离器:
String lineSeparator = System.getProperty("line.separator");
然后将其附加到您已阅读的行:
pw.write(line+lineSeparator);
在回路外部获取系统的线路分离器:
String lineSeparator = System.getProperty("line.separator");
然后将其附加到您已阅读的行:
pw.write(line+lineSeparator);