java中将字符串输出至文件,为什么换行符变成了黑方块
下面是我的代码的一部分:publicactionPerformed(ActionEvente){Filefile;intresult;restlu=fileChooser...
下面是我的代码的一部分:
public actionPerformed(ActionEvent e){
File file;
int result;
restlu = fileChooser.showSavingDialog();// fileChooser 是类中已声明的FileChooser对象
if(result == FileChooser.APPROVE){
file = fileChooser.getSelectedFile();
FileStream out = new FileStream(file);
out.write(text.getText().toByte());//我忘了将String转换成Byte数组是不是这样写,text是一个JTextArea对象
out.close();
}
}
很抱歉,上面的代码很糟,因为我初学Java,而且编译器总会提醒你该输入什么,所以有些方法名记不住,代码中存在错误(比如没有catch语句,这不是我在编译器中的源代码),但请各位能够晓得我的程序思路,毕竟大家不是冰凉的电脑,只会读正确的代码,对吧?
问题是,为什么输出将text对象中的文本输出到文件,再用记事本打开文件后,文本中的换行符会被替换成小黑块?我用二进制流和字符流都试过了,情况依旧。 展开
public actionPerformed(ActionEvent e){
File file;
int result;
restlu = fileChooser.showSavingDialog();// fileChooser 是类中已声明的FileChooser对象
if(result == FileChooser.APPROVE){
file = fileChooser.getSelectedFile();
FileStream out = new FileStream(file);
out.write(text.getText().toByte());//我忘了将String转换成Byte数组是不是这样写,text是一个JTextArea对象
out.close();
}
}
很抱歉,上面的代码很糟,因为我初学Java,而且编译器总会提醒你该输入什么,所以有些方法名记不住,代码中存在错误(比如没有catch语句,这不是我在编译器中的源代码),但请各位能够晓得我的程序思路,毕竟大家不是冰凉的电脑,只会读正确的代码,对吧?
问题是,为什么输出将text对象中的文本输出到文件,再用记事本打开文件后,文本中的换行符会被替换成小黑块?我用二进制流和字符流都试过了,情况依旧。 展开
2个回答
展开全部
那是因为默认的情况下,界面上的换行时用的"\n",这是LINUX和UNIX的换行符。在windows下换行符是"\r\n".
解决方案:
out.write(text.getText().toByte());//我忘了将String转换成Byte数组是不是这样写,text是一个JTextArea对象
改为:
String mid=text.getText().trim();
mid=mid.replaceAll("\n","\r\n");
out.write(mid.getText().getBytes());
解决方案:
out.write(text.getText().toByte());//我忘了将String转换成Byte数组是不是这样写,text是一个JTextArea对象
改为:
String mid=text.getText().trim();
mid=mid.replaceAll("\n","\r\n");
out.write(mid.getText().getBytes());
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询