java - "\n"无法在记事本中使用缓冲编写器?

标签 java newline notepad bufferedwriter

我正在编写一个 Java 程序(使用 Eclipse IDE),使用 swing 将 MIPS 代码从八进制转换为二进制表示法,

问题是无论我尝试什么,我都看不到逐行写入的输出文件,我尝试了很多方法,但不知道出了什么问题,请帮助我

在输入文件中我说过

FAB 4 FFFFF

输出显示为

1111 1010 1011 100 1111 1111 1111 1111

但是当我在 NotePad++ 等中打开时,格式正常,请帮助我

当我在记事本中打开时,我也希望它看起来格式化 像这样

1111 1010 1011 100 
1111 1111 1111 1111

我猜它与文本编辑器有关,而不是与程序有关,无论如何,这是完成工作的方法......

公共(public)无效convertFile()

{ 尝试{

    BufferedReader reader=new BufferedReader(new FileReader(inputFile));


JFileChooser fileSave=new JFileChooser(".");//open chooser with current working directory
fileSave.showSaveDialog(frame);

outputFile=fileSave.getSelectedFile();

BufferedWriter writer=new BufferedWriter(new FileWriter(outputFile));

String line="";
String binaryVal="";
String binaryLine="";
String[] token;

//read from input file and convert and save in output file
while((line=reader.readLine())!=null)
{
    token=line.split("\\s+");
    binaryVal="";
    binaryLine="";

    for(int i=0;i<token.length;i++)
    {
        binaryVal=HexToBinaryConverter.hexToBin(token[i]);
        //System.out.println(binaryVal);
        binaryLine=(binaryLine+binaryVal+" ");
        //System.out.println(binaryLine);
    }//all tokens in a line have been processed ,now write to file
    System.out.println(binaryLine);

    writer.write(binaryLine+"\n");

}

    //entire file has been processed now close everthing
writer.close();
reader.close();
}
catch(Exception e)
{
    System.out.println("Some exception in FIle IO");
    JOptionPane.showMessageDialog(frame,
            "Invalid Hex Numbers.",
            "Inane warning",
            JOptionPane.WARNING_MESSAGE);
}

}

最佳答案

我建议你使用PrintWriter。它比附加 \n 更有效,并且它将使用特定于平台的回车符。

try (PrintWriter pw = new PrintWriter(filename)) {
   // do something
   pw.println(binaryLine);
   // something else.
} // close when done.

println 将在 Windows 上使用 \r\n,在 Linux/MacOSX 上使用 \n

i question is will using \r\n render my jar program or executable unrunnable in UNIX?

你的程序将会运行,除非你会在你编写的每行文本的末尾得到一个^M,它是\r

关于java - "\n"无法在记事本中使用缓冲编写器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28324693/

相关文章:

Java - 将缓冲区转换为字符串(经济的方式)

javascript - 使用空白 :nowrap is one line in IE 在 PRE 中美化突出显示

java换行

java - 尝试用小程序打开记事本

java - 如何避免 .clone()?

java - 如何在 Jframe 中创建 JPanel?

python - 在 nestedExpr 中保留换行符

android - Android SQL错误,将无法创建表

python - 如何将阿拉伯语文本放入txt文件中

java - 在 Java 中创建无状态实用程序类的最佳实践是什么