<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
package com.lynda.files;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class ReadNetworkFile {
public static void main(String[] args) {
StringBuffer sb = null;
try {
URL url = new URL("http://www.sciencenet.cn/xml/news.aspx?news=0");
InputStream in = url.openStream();
//BufferedInputStream buf = new BufferedInputStream(in);
//用BufferedReader解决乱码
BufferedReader reader = new BufferedReader (new InputStreamReader(in));
sb = new StringBuffer();
while(true){
int date = reader.read();
if(date==-1){
break;
}else{
sb.append((char)date);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(sb);
}
}
从网上读取的xml文件出现中文乱码,因为一个汉字占两个字节,而当中英文混合的时候,有的字符占一个字节,有的字符占两个字节,所以如果直接用BufferedInputStream读字节,而数据比较长,没有一次读完的时候,很可能刚好读到一个汉字的前一个字节,这样,这个中文就成了乱码,后面的数据因为没有字节对齐,也都成了乱码.所以我们需要用BufferedReader来读取,它读到的是字符,所以不会读到半个字符的情况,不会出现乱码.
参考:http://www.pocketdigi.com/20110805/437.html#more-437
分享到:
相关推荐
在Java中,`java.util.zip`包提供了对ZIP文件的基本操作,但默认使用的是平台默认的字符集,这可能在跨平台操作时引发乱码问题。 为了解决这个中文乱码问题,我们需要在创建ZipEntry时指定合适的字符集,通常是UTF-...
解决 Java 压缩文件乱码问题的方法 在 Java 中,压缩文件是常见的操作,但是在压缩文件时经常遇到乱码问题,本文将详细介绍解决 Java 压缩文件乱码问题的方法。 一、内容的中文乱码问题 在 Java 中,压缩文件时...
在这个“个人写的JavaIO工具”中,我们可以看到作者创建了一个自定义的Io工具集,包含了对文件读写、数据流操作、以及代码统计和注释处理的功能。下面将详细讨论这些知识点。 1. **Java IO基础**: - Java IO API...
由于Java的字符编码问题,特别是在处理多语言字符时,引入了字符流,以避免因字节分割导致的乱码问题。例如,一个中文字符在UTF-8编码中可能需要3个字节,而Unicode只需要2个字节。 5. **节点流与处理流** 节点流...
JAVA IO流小结 JAVA IO流是指Java语言中用来实现输入/输出操作的机制。IO流是指任何有能力产出数据的数据源对象或者有能力接收数据的数据源对象。他屏蔽了实际的I/O设备处理数据的细节。 一、流的定义和分类 流是...
在处理字符流时,必须清楚文件的编码方式,以避免乱码问题。 **9. 文件追加** FileWriter有一个构造函数可以指定是否追加模式打开文件,如果为true,则写入的内容会添加到文件末尾,而不是覆盖原有内容。 **10. ...
而处理文本文件时,字符流能够更好地处理Unicode编码问题,避免乱码问题。 在IO流操作中,我们还需要了解一些关键概念: - **管道流(Piping Stream)**:允许流之间的连接,使得一个流的输出可以作为另一个流的...
用几个简单的java语句操作java.io.BufferedInputStream和java.io.BufferedOutputStream,就能彻底解决jspSmartUpload乱码问题。下载的时候无需再用jspsmartupload。 zip包中包含了jspsmartupload.jar和文件上传、...
本文将深入探讨如何使用JAVA Web的过滤器和包装器来消除乱码问题。 首先,我们来看过滤器(Filter)。在JAVA Web中,过滤器是Servlet规范的一部分,它允许我们在请求到达目标Servlet或JSP之前对请求进行预处理,也...
相比于字节流,字符流更适合处理文本数据,因为它们能够正确地处理Unicode字符,避免乱码问题。 #### 二、处理流 处理流是在原有的输入输出流的基础上添加额外功能的流,如缓冲、转换等。 ##### 2.1 缓冲流 - **...
### Java的IO类库基本架构详解 #### 一、引言 Java的I/O类库是程序员处理输入输出操作的基础工具。随着数据量的不断增长...此外,了解字符与字节之间的转换机制可以帮助解决常见的乱码问题,确保数据正确无误地传输。
- 使用 `InputStreamReader` 和 `OutputStreamWriter` 进行字符流转换时,需指定合适的字符编码,如 "UTF-8",以避免字符乱码问题。 7. **Reader 和 Writer**: - `Reader` 和 `Writer` 是字符流的抽象基类,用于...
**乱码问题**:乱码通常是由于编码和解码方式不匹配导致的。为了防止乱码的发生,需要确保读写数据时使用的编码一致。 以上内容详细介绍了Java中的I/O操作及其核心概念,包括流的定义、分类、File类的使用以及字符...
### Java IO流学习总结 #### 一、Java中为什么提出流的概念? 在计算机科学中,数据经常需要在程序和外部设备之间传输。这些外部设备包括但不限于磁盘、网络连接甚至是键盘和屏幕。为了统一和简化这种数据交互的...
### JAVA-IO详解 #### 一、概述与基础概念 在Java编程语言中,输入输出(简称IO)处理是程序开发中的一个基本且重要的部分。Java IO系统主要由两大类构成:字节流(Byte Stream)和字符流(Character Stream)。这...
此外,Java的IO流是处理文件操作的核心工具,如`FileInputStream`和`FileOutputStream`用于读写文件,`BufferedInputStream`和`BufferedOutputStream`用于提高性能,以及`FileReader`和`FileWriter`用于处理字符流。...
Java读写properties文件解决中文乱码问题 Java读写properties文件是在Java开发中一种常见的配置文件读写方式,但是在读写properties文件时,经常会遇到中文乱码问题。下面将详细介绍Java读写properties文件解决中文...