请告诉JAVA得字符串中如何表示回车符!

tony2000_tang 2001-07-23 04:01:31
...全文
4117 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
cming 2001-07-26
  • 打赏
  • 举报
回复
太痛快了,长久以来一直被文本文件二进指文件,在unix,windows上的读写差异感到困惑,连我对文件的读写方式使用都没有信心.要不我开个贴子单独给分.
cming 2001-07-26
  • 打赏
  • 举报
回复
我看我来给分算了!
cming 2001-07-26
  • 打赏
  • 举报
回复
搞清楚了.
windows的'\r\n' 到了Unix就会出现'^M'怪字符,居然不任'\r'.
ftp 以binary方式就完全拷贝到unix,出现'^M',以ascii方式,Unix系统存盘自动转换为'\n'.是我理解错了.
luodi 2001-07-26
  • 打赏
  • 举报
回复
这么说你同意我说的了。:)
cming 2001-07-25
  • 打赏
  • 举报
回复
补充一下:ftp client打开文件的方式应是固定的'rb'模式
cming 2001-07-25
  • 打赏
  • 举报
回复
luodi 说的好,但我想是你有点误解了.'\n'只是char(13).

但这不是'\n'本身的问题.这是一个转换的问题.而不是平台的问题.
在vi,ultraedit打回车就插入0x0D,0x0A,这是任何一个文字editor都是一样的.

如果我定义
String a="aa" + "\n";

我把String a 以"r","rb" 两种模式写入文件.
肯定有两种结果,'w'模式就自动转化成 "aa\r\n";
'wb'模式就比较'忠于原作',还是'aa\n'

假设"aa\r\n"在文件中.
读也有两种方式:
'r' ,内存是'aa\r\n';
'rb',内存反而是'aa\n';

当以ftp,binary模式upload到unix的时候,我估计是ftp client先以rb方式读text文件内容到内寸,再transfer 到server,server 以'wb'方式保存.那么unix就是'aa\n'.vi 打开就不对了.
当以ftp,acii模式upload到unix的时候,我想应该是ftp client先以r方式读text文件内容到内寸,再transfer 到server,server 以'w'方式保存.那么unix就是'aa\r\n'.vi.

我在做ftp client的时候碰到了这种问题,本来以为是是不是stream的问题.stream的问题就比较搞了.
我得找个空的时间研究,正实一下.




luodi 2001-07-25
  • 打赏
  • 举报
回复
在 Unix 与 Windows 平台分别编辑一个文本文件,再比较一下字节,你就会知道,行分隔符在 Unix 平台下与 Windows 平台下是差一个字节的,又或者试一下从 Unix 上 ftp 下来一个文本文件,用 ascii 和 binary 各下一次就可以看出差别了。
SophiaQ 2001-07-25
  • 打赏
  • 举报
回复
Shania说得没错,要看操作系统,
在WIN环境下是要\r\n。
gzproger 2001-07-25
  • 打赏
  • 举报
回复
搞那么复杂干什么,就是\n就够用了。
Shania 2001-07-25
  • 打赏
  • 举报
回复
luodi说得对,不同的os对于换行有不同的表示
MacOS: \r
DOS/WINDOWS: \r\n
UNIX/LINUX: \n
其实: r => R eturn carriage, n => N ew line
这是由于历史原因造成的,打字机的回车,换行是分开的两个键。回车就是把打字头(车)回到行首,换行就是在当前车位新起一行。
cming 2001-07-24
  • 打赏
  • 举报
回复
奇怪,不明白luodi.又不是文件分割file.separator
cming 2001-07-24
  • 打赏
  • 举报
回复
'\n'当然也是都正确的
luodi 2001-07-24
  • 打赏
  • 举报
回复
其实最正确、平台无关、推荐的做法是:

Properties pp = System.getProperties();
String newLine = pp.getProperty("line.separator");

这个 newLine 就是你需要的换行符,不论什么平台都是正确的。
panq 2001-07-24
  • 打赏
  • 举报
回复
\n
BlueHand 2001-07-24
  • 打赏
  • 举报
回复
开玩笑吧!这也问?!
guojun_2000_2000 2001-07-23
  • 打赏
  • 举报
回复
"\n" 换行
"\r" 回车
cming 2001-07-23
  • 打赏
  • 举报
回复
一不小心误人子弟了.
ascii 10是'\n',ascii 13是'\r'
cming 2001-07-23
  • 打赏
  • 举报
回复
char ret = 13; //or '\n'
char car = 10; //or '\r'
icey 2001-07-23
  • 打赏
  • 举报
回复
用println可以输出你的字符串,并在结尾处回车换行
也可以用\n表示回车
xxmm 2001-07-23
  • 打赏
  • 举报
回复
wawawawawa
加载更多回复(2)

62,614

社区成员

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

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