windows -> /r/n
linux/unix -> /r
mac-> /n
本想着使用BufferedWriter中的newline()进行统一换行,其API解释为:“Writes a line separator. The line separator string is defined by the system property line.separator, and is not necessarily a single newline ('\n') character.”
会根据系统的换行符来换行,OK,满足我要求。但是有问题出现了:
如果我在Linux环境下写入换行(换行符:/r),那在windows下打开该.txt文件,则/r不会被解析为换行。
所以,我们在开发时候,如果需要指定文件在某些地方换行,则不能使用 newline 方法。必须手动指定换行符:\r\n 因为按照上面列举的不同系统换行符看,如果字符串的末尾是 \r\n 在三个系统中,查看该文件,都会解释为换行。
Linux下可以用sed命令向文件中追加内容。
案例:把/etc/test1文件中1-10行内容写入到test2中
sed -n '1,10'p /etc/test1 >>test2#将file1的1-10行追加到file2
sed命令行格式为:
sed [-nefri] ‘command’ 输入文本
常用选项:
-n∶使用安静(silent)模式;
-e∶直接在指令列模式上进行 sed 的动作编辑;
-f∶直接将 sed 的动作写在一个档案内;
-r∶sed 的动作支援的是延伸型正规表示法的语法;
-i∶直接修改读取的档案内容,而不是由萤幕输出。
参考一下吧,
strcat(buf,"\n")
将你要写的数据放在buf中,利用strcat函数在后面拼接上换行符\n
int fd=open("/home/wang/time.log",O_CREAT|O_RDWR,0666)
打开(创建)你要 *** 作的文件
write(fd,buf,sizeof(buf))
向文件中写入数据
下面是我创建的守护进程打印的日志文件信息,文件为time.log。内容时每两秒向文件中写入当前时间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)