为什么文本文件里的\n读出来后变成\\n,结果换不了行了

pcgreen 2009-12-12 11:56:07
我的源代码:
InputStream in = getClass().getResourceAsStream("/dict" );
size = in.read(buf);
String strReturn = new String(buf, "UTF-8");

文件里有\n,但读出来后strReturn 里都变成\\n了,结果是换不了行,请高手帮忙!!!
...全文
2406 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
classic2008olympic 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 mailbomb 的回复:]
文本里面换行的"\n"应该是不可见的,你可以看到的“\n”就是字符\和字符n,当然换不了行的
[/Quote]
是的。换行在文本里是看不见的。如果有就是黑块。如果你想实现字符的截取,可以换成别的标识符
acatastatic:&反常的, 失规的,等读出后再进行换行处理。显示在屏幕上(看似你是在做j2me程序)
wly0502 2010-01-10
  • 打赏
  • 举报
回复
ding
blueduan1985 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 mailbomb 的回复:]
文本里面换行的"\n"应该是不可见的,你可以看到的“\n”就是字符\和字符n,当然换不了行的
[/Quote]

15楼正解
changhao513 2010-01-09
  • 打赏
  • 举报
回复
楼主还是用UltraEdit看一下你写的文件吧,用十六进制看,说不定会有收获
archer_xy 2010-01-09
  • 打赏
  • 举报
回复
等待答案
woshizn 2010-01-09
  • 打赏
  • 举报
回复

 因为它认为这个 \n 不代表换行。
网络咖啡 2010-01-09
  • 打赏
  • 举报
回复
文本里面换行的"\n"应该是不可见的,你可以看到的“\n”就是字符\和字符n,当然换不了行的
pcgreen 2009-12-13
  • 打赏
  • 举报
回复
我文件是写成以下格式的
acatastatic:\n反常的, 失规的\n
bancxc 2009-12-13
  • 打赏
  • 举报
回复
\\表示一个\?
kf156 2009-12-13
  • 打赏
  • 举报
回复
文件写时没写对。你文件是怎么写的?
genius_ily 2009-12-13
  • 打赏
  • 举报
回复
看不懂
crazylaa 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pcgreen 的回复:]
第一行:单词\n解释
第二行:单词\n解释
每次只读一行内容,根据这一行的\n实现换行,现在只能是用\\n替换掉\n,不知有没有更好的办法
[/Quote]
你可以考虑用别的来代替\n。
比如#$之类的字符,单词和解释里面都不可能出现的字符啊
wuhanchendalong 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kf156 的回复:]
文件写时没写对。你文件是怎么写的?

[/Quote]
同感!!!!

你写的文件格式咋不同呢?是用j2me吗?如果是j2me的话,文件格式必有正确的后缀名啊?难道你在系统中隐藏了已知文件名的后缀名吗?那样的话不好!!
pcgreen 2009-12-13
  • 打赏
  • 举报
回复
第一行:单词\n解释
第二行:单词\n解释
每次只读一行内容,根据这一行的\n实现换行,现在只能是用\\n替换掉\n,不知有没有更好的办法
darxin 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pcgreen 的回复:]
replace是可解决问题,只是不明白系统为什么一定要加多个转义符呢,文本文件里面的\n本来是想自定义换行的位置,但现在确还要再做一次处理
[/Quote]
用文本编辑器打开文件,如果内容像下面的样子:

第一行内容\n第二行内容

这样的内容读取出来的是"\\n",如果确实要根据"\\n"分成两行,你就将所有的"\\n"替换成"\n"吧。

如果看到的内容像下面的样子:

第一行内容
第二行内容

这样的内容读取出来的就是两行,不需要替换。
gesanri 2009-12-13
  • 打赏
  • 举报
回复
你应该是判断是不是"\r\n"吧
pjw100 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pcgreen 的回复:]
replace是可解决问题,只是不明白系统为什么一定要加多个转义符呢,文本文件里面的\n本来是想自定义换行的位置,但现在确还要再做一次处理
[/Quote]
不管你文件里面是否有这些转义字符,你总是要对文件的这些做检查,这样能够确保程序的健壮。
kf156 2009-12-13
  • 打赏
  • 举报
回复
能否把文件生成过程说详细些,用JAVA吗,还是J2ME
pcgreen 2009-12-13
  • 打赏
  • 举报
回复
replace是可解决问题,只是不明白系统为什么一定要加多个转义符呢,文本文件里面的\n本来是想自定义换行的位置,但现在确还要再做一次处理
pjw100 2009-12-13
  • 打赏
  • 举报
回复
应该是在写文件的时候系统默认的把\给转义了所以就变成了\\n。
这个很好解决,读出来的时候,把\\替换为\然后再显示,这样原来的\转义\(\\n),现在是\n转义字符了。
别告诉replace的方法你不知道,虽然String类没提供,但是网上还是有很多的。

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧