Unix与windows下换行符的问题??? 在程序中如何转换(小弟刚注册的号,没多少分)

lala365 2008-09-28 11:14:55
问题描述如下:

我在Unix服务器下运行的java工程中导出通讯录为OutLook的CSV文件格式,在OutLook中无法导入,分析是回车换行符的问题,

请问在程序中有办法转换不?请高手指教。

导出代码如下:

// 准备csv的标题
String[] title = {"姓","部门","职务","单位主要电话","其他传真","移动电话","电子邮件地址"};
//写入csv文件
try {
String fileNmae = "公司通讯录";
String fname = new String(fileNmae.getBytes(),"iso-8859-1");//设置文件名
OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
response.setHeader("content-disposition", "attachment; filename=" + fname + ".csv");//设定输出文件头
response.setContentType("application/msexcel");//定义输出类型
CsvWriter wr =new CsvWriter(os,',',Charset.forName("GBK"));
wr.writeRecord(title);
List list = (List)rb.getReturnobject();//通讯录对象列表
for(int i=0;i<list.size();i++){
AddressListDTO addressListDTO = (AddressListDTO)list.get(i);//通讯录DTO
String[] contents = {addressListDTO.getName(),addressListDTO.getOrgname(),addressListDTO.getPosition(),addressListDTO.getWorktelephone(),
addressListDTO.getFax(),addressListDTO.getMobile(),addressListDTO.getEmail()};
wr.writeRecord(contents);
}
wr.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
...全文
278 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThirstyCrow 2008-09-29
  • 打赏
  • 举报
回复
FilterWriter out = new FilterWriter(response.getWriter()) {

@Override
public void write(int c) throws IOException {
if (c == '\n') {
super.write('\r');
}
super.write(c);
}

@Override
public void write(char[] cbuf, int off, int len) throws IOException {
cbuf = String.valueOf(cbuf).replace("\n", "\r\n").toCharArray();
super.write(cbuf, off, len);
}

@Override
public void write(String str, int off, int len) throws IOException {
str = str.replace("\n", "\r\n");
super.write(str, off, len);
}
};
CsvWriter wr = new CsvWriter(out, ',');

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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