Java输出文件无法将\ n识别为换行符

时间:2012-04-08 22:56:39

标签: java

用于大学课程的Java项目我有一种方法可以将ASCII图像保存为单线字符串,另一种方法叫做toString,重建此ASCII图像并以字符串形式返回。当我在Eclipse上运行我的程序时,我的输出在控制台上看起来很好并且是多行的,并且它们应该存在换行符。但是当我使用带有重定向输出文件的命令行运行它时

java myprogram<输入>输出

输出中的文本是uniline而没有换行符

以下是方法的代码

public String toString(){

    String output = "";

    for(int i=0; i<height; i++){
        output=output+image.substring(i*width, i*width+width)+"\n";

        }
    return output;  
}

我该怎么做才能获得多行输出文本文件

2 个答案:

答案 0 :(得分:3)

可能是\n不是您正在运行的操作系统的正确行分隔符。使用Java时,最好使用System.getProperty("line.separator");创建换行符,如this will ensure you are using the correct one for the platform

答案 1 :(得分:0)

Windows时使用\ r \ n的更快解决方案:

public String toString() {
    final String EOL = System.getProperty("line.separator");
    final int EOL_LENGTH = EOL.length();
    StringBuilder output = new StringBuilder(image.length() + EOL_LENGTH * height);
    output.append(image);
    for (int i = 0; i < height; i++) {
        output.insert(i*(width + EOL_LENGTH) + width, EOL);
    }
    return output.toString();  
}