java回车_Java中的回车换⾏符nrt
⾸先直接上结论:
//换⾏时采⽤Property("line.separator")
public void test1() {
LogTable logTable = LogSecById(489);
System.out.StrContent().Property("line.separator"), "
"));
}
因为操作系统的不同,换⾏符操也不同:
/r Mac
java replace方法/n Unix/Linux
/
r/n Windows
/*** 获取当前系统的换⾏符*/
public static voidlineSeparator() {//注意在将流写⼊⽂件时,换⾏应根据操作系统的不同来决定。//在程序我们应尽量使⽤
if (Property("line.separator").equals("/r/n")) {
System.out.println("//r//n is for windows");
}else if (Property("line.separator").equals("/r")) {
System.out.println("//r is for Mac");
}else if (Property("line.separator").equals("/n")) {
System.out.println("//n is for Unix/Linux");
}
System.out.println("aa/nbb");
System.out.println("aa/rbb");
System.out.println("aa/tbb");
'\r'是回车,'\n'是换⾏,前者使光标到⾏⾸,后者使光标下移⼀格。通常⽤的Enter是两个加起来
‘/t’相当于键盘的Tab键,‘/n’换⾏New Line,‘/r’回车Carriage Return,基本的概念应该是回车表⽰回到最前⾯,换⾏表⽰换⼀⾏。
“回车”(carriage return)和“换⾏”(line feed)这两个概念的来历和区别了。
在计算机还没有出现之前,有⼀种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有⼀个问题,
就是打完⼀⾏换⾏的时候,要⽤去0.2秒,正好可以打两个字符。要是在这0.2秒⾥⾯,⼜有新的字符传过来,那么这个字符将丢失。
于是,研制⼈员想了个办法解决这个问题,就是在每⾏后⾯加两个表⽰结束的字符。⼀个叫做“回车”,告诉打字机把打印头定位在左边界;
另⼀个叫做“换⾏”,告诉打字机把纸向下移⼀⾏。
这就是“换⾏”和“回车”的来历,从它们的英语名字上也可以看出⼀⼆。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,⼀些科学家认为在每⾏结尾加两个字符太浪费了,加⼀个就可以。
于是,就出现了分歧。
Unix系统⾥,每⾏结尾只有“”,即“\n”;Windows系统⾥⾯,每⾏结尾是“”,即“\r\n”;Mac系统⾥,每⾏结尾是“”。
⼀个直接后果是,Unix/Mac系统下的⽂件在Windows⾥打 开的话,所有⽂字会变成⼀⾏;⽽Windows⾥的⽂件在Unix/Mac下打开的话,在每⾏的结尾可能会多出⼀个^M符号。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论