最近用BufferedReader读一个文本文件,然后再将读出的内容用PrintWriter写入到另外一个新的文件中。
之前一直没有发现这个问题,就是如果文本内容中有中文,在读出的内容和写入的内容都会出现乱码。
想了一下解决方案。
首先用BufferedReader读出的时候设置一下字符集编码:
//文件路径:filePath
File file = new File(filePath);
FileInputStream fin = new FileInputStream(file);
InputStreamReader in = new InputStreamReader(fin,"GBK");
BufferedReader br = new BufferedReader(in);
设置好了之后,会进行一些读出操作,然后再调用PrintWriter写入,当然也要设置同一个字符集编码:
File tempFile = new File(newPath);
PrintWriter tpw = null;
FileOutputStream fo = new FileOutputStream(tmpFile);
OutputStreamWriter osw = new OutputStreamWriter(fo,"GBK");
tpw = new PrintWriter(osw);
这样设置以后,中文的乱码就解决了。
学习学习。
分享到:
相关推荐
`BufferedReader`和`PrintWriter`简化了文本文件的读写,支持读写一行数据。例如: ```java BufferedReader reader = new BufferedReader(new FileReader(file)); PrintWriter writer = new PrintWriter(new ...
在Java编程中,CSV(Comma Separated Values)...通过以上步骤和知识点,你应该能够有效地解决Java读写CSV文件时遇到的中文乱码问题。在实际项目中,结合具体的错误现象,灵活应用这些知识就能顺利处理各种编码问题。
转换流用于在字节流和字符流之间转换,而BufferedReader和PrintWriter提供了高级的读写功能,如读取一行文本或格式化输出。 在学习这些源代码时,你可能会遇到IOException,这是Java IO操作中常见的异常类型,需要...
这些示例通常包括创建InputStreamReader和OutputStreamWriter对象,通过BufferedReader和PrintWriter进行读写操作,并在适当位置关闭流。 总的来说,Java字符流操作是处理文本文件不可或缺的部分,它提供了丰富的...
Java中读写文本文件主要依赖于`InputStream`和`OutputStream`的使用,结合`Reader`和`Writer`接口的实现类如`BufferedReader`和`PrintWriter`,可以高效地完成文件的读取和写入操作。掌握这些核心类的使用是进行文件...
在实际开发中,开发者通常会使用BufferedReader和PrintWriter等更高级的流类来包装System.in和System.out,以提高读写效率和灵活性。 在给定的标签“源码”和“工具”中,我们可以理解这篇博文可能详细解释了如何在...
- `InputStreamReader`和`OutputStreamWriter`:用于字节流和字符流之间的转换,通常配合BufferedReader和PrintWriter使用。 8. **数据流**: - `DataInputStream`和`DataOutputStream`:处理基本数据类型(如int...
例如,FileInputStream和FileOutputStream用于文件的字节级读写,而BufferedReader和PrintWriter用于文本的字符级操作。理解流的层次结构以及何时使用每种流对于有效地管理数据传输至关重要。 线程是Java多任务处理...
这里采用`BufferedReader`和`PrintWriter`组合的方式来实现文件流之间的复制。 #### 代码实现: ```java public void copyStream(InputStream is, OutputStream os) throws IOException { String line; ...
- BufferedReader和PrintWriter可以用于读写文本文件,提供了缓冲和格式化输出的功能。 2. 缓冲流: - BufferedInputStream和BufferedOutputStream增加缓冲,提高读写效率。 - BufferedReader和BufferedReader...
- Java的`BufferedReader` 和 `PrintWriter`:提供高效且易用的读写功能。 2. 二进制文件操作: - 二进制文件存储数据效率高,适用于图像、音频、视频等非文本数据。 - C++中的`fstream`类支持二进制模式,如`...
- BufferedReader和PrintWriter:在这个项目中,我们可能会用到字符流,如BufferedReader用于读取文本文件,而PrintWriter用于写入。这些类处理字符数据,而不是原始字节,因此更适合处理包含文本的数据。由于Java...
第二个示例采用了不同的方式来完成文件的读写操作,利用`FileWriter`和`BufferedReader`类,提供了一种更为高效且常用的文件读写模式。 ##### 关键步骤: 1. **确定文件路径**: - `String path=request....
例如,`FileInputStream`和`FileOutputStream`用于二进制文件读写,`BufferedReader`和`PrintWriter`用于文本文件读写。对于大文件,通常使用缓冲区来提高性能。 4. **内存管理**:处理大数据时,内存限制是挑战之...
Java 语言在读写文件时,经常会遇到中文乱码的问题,这是因为 Java 默认使用的编码方式是 ISO-8859-1,而中文字符在这个编码方式下无法正确地表示。为了避免中文乱码,需要使用正确的编码方式,例如 UTF-8。 在读取...
在读取或写入Excel文件时,我们通常会用到字节流(如FileInputStream和FileOutputStream)或字符流(如BufferedReader和PrintWriter)。这些流可以帮助我们将文件内容转化为字节序列,方便程序处理。在读取Excel时,...
8. **工具辅助**:除了源码级的调试,还可以借助IDE(如Eclipse、IntelliJ IDEA)的内置工具进行文件操作的调试和问题排查。例如,使用IDE的文件查看器、断点调试功能,以及集成的日志查看器。 9. **性能优化**:在...
编码是将字符(如中文汉字)转换为二进制表示的过程,而解码则是将二进制数据还原成字符。在Java中,主要使用的编码格式有GBK、GB2312、UTF-8等。GBK是对GB2312的扩展,包含了更多的汉字。UTF-8是一种广泛使用的...
例如,了解File类的功能,知道如何使用BufferedReader和PrintWriter读写文件,以及如何操作目录。 最后,对于JavaSE的标准库,如Math类、String类和日期时间API(Calendar、Date、LocalDateTime等),也需要有深入...
- `BufferedReader`和`BufferedWriter`通过内置缓冲机制提高了读写性能,尤其是处理大数据量时表现更佳。 3. **易用性**: - `PrintStream`和`PrintWriter`提供了更为便捷的方式来处理数据的输出,如自动换行等...