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对象中的文本输出到文件,再用记事本打开文件后,文本中的换行符会被替换成小黑块?我用二进制流和字符流都试过了,情况依旧。
展开
 我来答
希茜Cqa68
2009-05-30 · TA获得超过1238个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:1071万
展开全部
那是因为默认的情况下,界面上的换行时用的"\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());
8vip
2009-05-30 · TA获得超过329个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:403万
展开全部
记事本本来就是那样子的. 你用EditPlus等打开就是正常的.
你在代码中换行的时候加个\r\n就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式