java实现换行_java写文件实现换行

本文介绍了两种在Java中实现文件换行的方法:一种是通过在内容中使用` `,另一种是利用`BufferedWriter`的`newLine()`方法。然而,由于不同操作系统对换行符的支持不同,`newLine()`方法可能存在兼容性问题,建议在需要跨平台时使用` `来确保换行效果的一致性。
摘要由CSDN通过智能技术生成

第一种:

写入的内容中利用\r\n进行换行

File file = new File("D:/text");try{if(!file.exists())

file.createNewFile();

FileOutputStream out=new FileOutputStream(file,false);

StringBuffer sb=newStringBuffer();

sb.append("10 6002 571 001 20161201153103 01 0 \r\n");

sb.append("1 20161201KBS57100988663 1 浙江目录上传 1 20161201094425 21000930235959 1 1 20110422KBS00005595530 ZZA571 ZZA 20161201094435 fanzhipeng2 000 \n");

out.write(sb.toString().getBytes("utf-8"));//注意需要转换对应的字符集

out.flush();

out.close();/*
                    FileOutputStream out = new FileOutputStream(file);

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(writerStream, "UTF-8"));

writer.write(json);

writer.close();

第二种:

利用BufferedWriter的newline()方法

File file = new File("D:/text");try{if(!file.exists())

file.createNewFile();

FileWriter out=newFileWriter (file);

BufferedWriter bw= newBufferedWriter(out);

bw.write("10 6002 571 001 20161201153103 01 0 ");

bw.newLine();

bw.write("1 20161201KBS57100988663 1 浙江目录上传 1 20161201094425 21000930235959 1 1 20110422KBS00005595530 ZZA571 ZZA 20161201094435 fanzhipeng2 000 ");

bw.newLine();

bw.flush();

bw.close();

}catch(IOException e) {

e.printStackTrace();

}

但是newLine在使用中可能会出现问题:

不同系统的换行符:

windows -->   \r\n

Linux         -->   \r

mac         -->   \n

我们一般开发是在 windows 下开发,而服务器一般情况下都是 linux。

如果我们使用 newline 函数换行,在本机测试的时候,因为是 windows 环境,换行符是 \r\n ,打开文件时候自然文件是换行处理,没有问题。

当我们部署到服务器时候,服务器是 linux 环境,newline 读取系统换行符是 \r ,导出到文件,文件的换行符是 \r,当我们把这个文件通过浏览器下载到 windows 时候,再打开文件将会出现没有换行的问题。因为 windows 下对于 \r 的解释并不是换行符。

所以,我们在开发时候,如果需要指定文件在某些地方换行,则不能使用 newline 方法。必须手动指定换行符:\r\n 因为按照上面列举的不同系统换行符看,如果字符串的末尾是  \r\n 在三个系统中,查看该文件,都会解释为换行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 Java 导出 Excel 进行换行的示例代码: ```java // 创建一个新的工作簿 Workbook workbook = new XSSFWorkbook(); // 创建一个新的工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 创建一行 Row row = sheet.createRow(0); // 创建一个单元格,并设置文本内容 Cell cell = row.createCell(0); cell.setCellValue("这是一个需要换行文本,\n这是第二行。"); // 设置单元格样式,使文本自动换行 CellStyle style = workbook.createCellStyle(); style.setWrapText(true); cell.setCellStyle(style); // 将工作簿写入文件中 FileOutputStream outputStream = new FileOutputStream("example.xlsx"); workbook.write(outputStream); outputStream.close(); ``` 在上面的示例代码中,我们创建了一个 `XSSFWorkbook` 对象来表示一个新的工作簿,然后创建了一个名为 "Sheet1" 的新工作表,并在第一行第一列中添加了一个单元格。 我们在单元格中设置了需要换行文本,并使用 `\n` 字符来表示换行。接着,我们创建了一个 `CellStyle` 对象,并将其设置为自动换行。最后,我们将工作簿写入到一个名为 "example.xlsx" 的文件中。 运行代码后,打开生成的 Excel 文件,可以看到文本已经自动换行了。 需要注意的是,自动换行只在单元格宽度不足以显示所有文本才会起作用。因此,在实际使用中,需要根据文本长度调整单元格宽度,以确保文本能够正确地显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值