`
mili_qm
  • 浏览: 6229 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JAVA从字节流到字符输出(解决中文乱码)

    博客分类:
  • java
阅读更多
java从文件,控制台,网页提取数据都是以字节流形式输入,由于编码方式不同,有时候会出现中文乱码;javaJDK中有一些类可以很好的解决中文乱码问题;
1)建立一个InputStream对象存储输入的字节流;
2)用InputStreamReader类对字节流按照想要的编码格式重新编写成字符流(默认是GBK编码);
3)用BufferedReader建立一个数据缓存区,存储一个一个的字符,方便进行处理;
到这里使用BufferedReader的readLine()函数就可以逐行提取出Reader里面的数据;
(要是想要提取整个缓存区里的数据,不妨用StringBuffer类型;StringBuffer是一个可变长的字符串,会自动扩容,而String对象是不可变长的,生成时有多大就是多大,StringBuild虽然也是可变长的,但它其中一些函数加了锁机制,性能略输于StringBuffer)
以下是通过一个URL提取网页源码的程序:

package url;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class url_print 
{
	String strUrl="http://www.baidu.com";
	public void print()
	{
		URL url=null;
		try {
			url = new URL(strUrl);
			URLConnection connection = url.openConnection();

			// 获取字节流;
			InputStream is = connection.getInputStream();

			//将字节流转为字符流并建立读缓存区
			BufferedReader r = new BufferedReader(new InputStreamReader(is,"UTF-8"));
			
			String temp;
			//StringBuilder可变长的字符串类;
			StringBuilder html=new StringBuilder(100);
			while((temp=r.readLine())!=null)
			{
				html.append(temp+"\n");
			}
			System.out.println(html.toString());
			
		} catch (IOException e) {
			return;
		}
		
		
	}
	public static void main(String argv[])
	{
		url_print test=new url_print();
		test.print();
	}

}
分享到:
评论

相关推荐

    关于java按字节截取带有汉字的字符串的解法

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    java中文乱码问题

    如果中间某次字符处理,用错误的编码方式解码了从输入流读取的字符数据,或用错误的编码方式将字符写入输出流,则下一个字符数据的接收者就会编解码出错,从而导致最终显示乱码。 三、在 Eclipse 中运行 Java 文件...

    详解Java中字符流与字节流的区别

    根据处理的数据单位,Java提供了两种主要类型的流:字符流和字节流。这两种流在处理数据时有显著的区别,尤其是在处理文本数据和二进制数据时。 1. 什么是流 流在Java中是一个抽象概念,它描述了数据如何从一个地方...

    Java字节流数据逐行读取(readLine)

    字节流主要分为输入流和输出流,其中InputStream类是所有字节输入流的基类,而OutputStream类则是所有字节输出流的基类。在实际应用中,我们经常需要对文本文件进行读取,特别是逐行读取,`readLine()`方法就是为此...

    JAVA常见中文乱码问题解决方法

    7. 配置文件:配置文件(如.properties或.xml)应以UTF-8编码,避免中文字符乱码。 通过上述方法,可以有效解决Java在处理中文字符时可能出现的乱码问题,确保程序在各种环境下正确显示中文。在开发过程中,保持...

    Java开发Client客户端,连接Windows的Telnet服务器,解决了中文乱码问题

    接收数据后,再将接收到的字节流解码为UTF-8字符串。 ```java String username = "用户名"; String password = "密码"; // 发送GBK编码的用户名和密码 out.println(new String(username.getBytes("GBK"), "ISO-...

    解决java所有中文乱码集合

    在Java编程语言中,中文乱码是一个常见的问题,特别是在处理文本输入、输出或者网络传输时。本集合旨在全面解析和解决各种中文乱码问题,帮助开发者有效地理解和应对这类问题。 一、乱码产生的原因 1. 编码与解码...

    day09-字节缓冲流&字符流1

    字符缓冲输入流可以从文件中读取字符数据,而字符缓冲输出流可以将字符数据写入到文件中。 4. 字符流出现原因(理解) 字符流出现的原因是因为 Java 中的字符编码问题。在 Java 中,字符可以使用多种编码方式,...

    javadbf中文乱码

    总的来说,处理`javadbf`中的中文乱码问题主要涉及到正确识别和设置DBF文件的字符编码。理解Java的字符编码机制,以及`javadbf`库提供的API,将有助于你有效地解决这类问题。通过适当配置,你可以顺利地在Java应用...

    jsp 中文乱码 原因及彻底解决办法

    由于Java和JSP文件是以字节流的方式保存的,如果编译过程中使用的编码方式与源文件的编码不匹配,就会导致乱码。为避免这种情况,建议在Java代码中尽量避免使用中文(除非在注释中),如果必须使用,可以使用命令行...

    java字符过滤器,过滤器

    在Java中,字符乱码通常是由于字符编码不一致导致的。例如,一个以UTF-8编码的文件被误认为是GBK编码来读取,就会出现乱码现象。为了解决这个问题,Java提供了`java.nio.charset.Charset`、`java.io....

    中文乱码总结出现的原因,及解决方法,包括数据库乱码

    Java 和 JSP 源文件中可能包含中文,而 Java 和 JSP 源文件的保存方式是基于字节流的。如果 Java 和 JSP 编译成 class 文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。解决方法是,在 Java 文件中...

    java读取文件中文乱码

    7. 编码转换:如果读取到的字符已经乱码,可以先将其转换为一个特定的编码(如ISO-8859-1,因为它可以无损地转换回字节流),然后再用正确的编码重新解码。 8. 文件操作最佳实践:在编写程序时,尽可能使用UTF-8...

    解决JSP中文乱码问题

    Java 和 JSP 源文件中可能包含有中文,而 Java 和 JSP 源文件的保存方式是基于字节流的。如果 Java 和 JSP 编译成 class 文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。例如,如果 Java 文件使用 ...

    乱码终极解决办法java实现

    乱码问题通常涉及到字符编码的不一致,尤其是在处理文本文件、数据库存储或者网络传输时。本文将详细讲解如何使用Java来实现乱码的终极解决方案。 首先,我们需要理解乱码产生的根本原因。乱码通常是由于字符集...

    fckeditor(java版-解决中文附件名称乱码问题)

    通过以上知识点的深入理解和应用,可以有效地解决“fckeditor(java版-解决中文附件名称乱码问题)”这个问题,确保用户能够正常上传并保存带有中文名称的附件,从而提高产品在中文环境下的可用性和用户体验。

    字节流编码获取

    字节流可以分为输入流(InputStream)和输出流(OutputStream),用于数据的读取和写入。例如,FileInputStream和FileOutputStream是Java中常用的字节流类,分别用于文件的读和写。 编码,特别是字符编码,是指将...

    SupplyunittableUtil.java(中文乱码解决之道)

    3. **字节流读写**:在读取或写入含有中文字符的文件时,如果没有正确设置字符编码,如InputStreamReader、OutputStreamWriter等流的构造函数中未指定字符集,也可能导致乱码。 4. **数据库操作**:在与数据库交互...

    java读写文件避免中文乱码.docx

    Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的编码方式来读取和写入文件。 ...

    java多种解决乱码方案详细资料大全

    "java多种解决乱码方案详细资料大全"这个资源很可能包含了一系列针对Java中乱码问题的解决方案。这里,我们将深入探讨几种常见的解决方法。 1. 文件编码与读写: - 使用`BufferedReader`和`FileReader`时,可以...

Global site tag (gtag.js) - Google Analytics