只要指明编码格式,就能正确的读取。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.CharBuffer;
public class PageParser {
public static void main(String args[]) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(new URL(
"http://news.cnool.net/0-1-19/35941/3.html").openStream(),
"utf-8"));
} catch (Exception e2) {
e2.printStackTrace();
}
CharBuffer bos = CharBuffer.allocate(20480);
int read = 0;
StringBuilder sb = new StringBuilder();
try {
while (in.read(bos) != -1) {
bos.flip();
sb.append(bos.toString());
}
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println(sb.toString());
}
}
分享到:
相关推荐
例如,使用`InputStreamReader`和`BufferedReader`读取文件时: ```java FileInputStream fis = new FileInputStream("file.txt"); InputStreamReader isr = new InputStreamReader(fis, "GB18030"); ...
此外,`java.io`包中的`InputStreamReader`和`OutputStreamWriter`是常用的字符流和字节流之间的桥梁,它们可以根据指定的编码进行读写操作。例如,从GBK编码的文件读取内容并转换为UTF-8编码: ```java ...
2. **InputStreamReader 和 OutputStreamWriter**:当读写文件时,应该使用这两个类来处理字符流,它们允许我们指定具体的字符编码。例如: ```java FileInputStream fis = new FileInputStream(file); ...
3. **转换流**:InputStreamReader和OutputStreamWriter作为桥梁,将字节流转换为字符流,处理字符编码问题。例如,可以使用它们将FileInputStream与UTF-8编码的FileWriter关联起来。 4. **对象序列化与反序列化**...
2. FileReader和FileWriter:用于读取和写入文件的字符流,基于Unicode编码。 3. BufferedReader和BufferedWriter:用于提高读写效率,通过缓冲区操作字符流。 4. InputStreamReader和OutputStreamWriter:作为字节...
- **转换流**:Java提供了`InputStreamReader`和`OutputStreamWriter`,它们可以将字节流转换为字符流,以适应不同编码的需求,使得以字节为导向的流和以字符为导向的流之间能够进行转换。 3. **Stream的属性和...
InputStreamReader和OutputStreamWriter是字节流和字符流之间的桥梁,用于字符编码的转换。 4. 文件操作:File类是Java IO的重要组成部分,用于文件和目录的创建、删除、重命名等操作。FileInputStream和...
- `InputStreamReader`和`OutputStreamWriter`用于在字节流和字符流之间转换,解决字符编码问题。 8. **数据流** - `DataInputStream`和`DataOutputStream`用于处理基本数据类型和字符串的读写。 9. **对象流** ...
- `java.io.InputStreamReader(InputStream)`:读取字节流中的数据,并使用指定的编码转换为字符。 - `java.io.OutputStreamWriter(OutputStream)`:将字符流写入字节流。 - `javax.xml.bind.annotation.adapters....