我正在编写一个 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/