windows文件换行符与linux文件换行符

本文探讨了不同操作系统中文件的换行符差异,包括Unix/Linux、Windows和MacOSX,并提供了一段处理数据库输出数据的示例代码,确保了在不同系统下正确处理换行符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先提醒一点:这里要说明的是文件换行符,而不是程序中输出字符串的换行符(例如:eclipse控制台输出在java程序中用\r或\n或者\r\n都能达到换行输出的效果)。

[size=medium]操作系统换行符[/size]
ASCII(美国信息交换标准码)中有这样两个字符CR(编码为13)和 LF(编码为10),在编程中通常表示为'\r'和'\n'。以下是各操作系统的换行符:
Unix和类Unix(如Linux):换行符采用 \n
Windows和MS-DOS:换行符采用 \r\n
Mac OS X:换行符采用 \n

[size=medium]实例说明[/size]
例如我现在从数据库读出数据写入一个文件,伪代码(该论坛提供的编辑器,代码格式很难调 :x )如下:

for(int i = 1;i <= resultSet.getMetaData().getColumnCount();i++){
if(i == resultSet.getMetaData().getColumnCount()){

DBData.append(resultSet.getString(i).replace("\r\n", "").replace("\t","")+"\r\n");
}else{

DBData.append(resultSet.getString(i).replace("\r\n", "").replace("\t","")+"\001");
}
}

我这里实现了防止数据串行(\r\n)和跳格(\t),并且每个字段用分隔符(\001)自动分割,每条数据自动换行。实现效果如图(第一个字段为ID,以下非完整截图):
[img]http://dl2.iteye.com/upload/attachment/0123/7019/4478ac8d-1003-32d0-8e28-420f13ec7b3f.jpg[/img]
以下为linux环境数据截图:
[img]http://dl2.iteye.com/upload/attachment/0123/7021/45b0e90c-b361-3b7e-b669-8ce9ced5cc91.jpg[/img]
windows环境(\001)在linux为^A(\001),\r\n为^M$。另外注意,需要以vi -b(VI的二进制模式)方式打开文件才会显示^M(\r),用:set list显示特殊字符才可以查看到$(\n)。
如果对linux命令不熟悉的可以看看这篇文章(笔者已分类总结了绝大部分开发人员可能会用到的linux命令和知识):[url=http://jsonliangyoujun.iteye.com/blog/2344117]Linux常用命令参考与指南[/url]
原文永久地址:[url]http://jsonliangyoujun.iteye.com/blog/2363195[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值