0

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

java myprogram <输入>输出

输出中的文本是单行的,没有换行符

这是方法的代码

public String toString(){

    String output = "";

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

        }
    return output;  
}

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

4

2 回答 2

3

\n对于您正在运行的操作系统,可能不是正确的行分隔符。对于 Java,最好System.getProperty("line.separator");用于创建换行符,因为这将确保您使用正确的平台

于 2012-04-08T23:04:33.403 回答
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();  
}
于 2012-04-08T23:16:27.307 回答