java 压缩时 cr转lf
时间: 2024-09-13 08:18:28 浏览: 62
CR LF CRLF转换
3星 · 编辑精心推荐
在 Java 中,CR (Carriage Return) 和 LF (Line Feed) 是文本行结束的标准字符。当你需要将文件从 Windows 格式 (使用 CR+LF 结合作为换行符) 转换为 Unix 或 Linux 格式 (通常只使用 LF),以便跨平台兼容时,可以使用 `BufferedReader` 和 `Writer` 类配合进行操作。
例如,你可以这样做:
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
File inputFile = new File("input.txt");
File outputFile = new File("output.txt");
try (BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"))) {
String line;
while ((line = reader.readLine()) != null) {
// 替换 CR+LF 为 LF
writer.write(line.replace("\r\n", "\n"));
}
} catch (IOException e) {
System.err.println("Error reading or writing file: " + e.getMessage());
}
}
}
```
在这个例子中,`replace("\r\n", "\n")` 函数会查找每一行中的 CR+LF 组合,并替换成单个 LF。这样就实现了从 Windows 格式的换行到Unix/Linux格式的转换。
阅读全文