`
mili_qm
  • 浏览: 6429 次
  • 性别: 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字节流数据逐行读取(readLine)

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

    java中文乱码问题

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

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

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

    详解JAVA 字节流和字符流

    Java字节流和字符流是Java I/O流处理中非常基础且重要的概念,它们是用于文件读写操作的两大类型。Java字节流主要包括InputStream和OutputStream两个基类及其子类,字符流则包括Reader和Writer两个基类及其子类。 ...

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

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

    java Socket与C#通信中中文乱码问题的解决方案

    在Java和C#之间进行Socket通信时,遇到中文乱码问题主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C#在处理字符串时可能使用其他编码,如GBK或ASCII。为了解决这个问题,我们需要确保两端在发送和接收...

    java解决解决get中文乱码问题

    ### Java解决GET请求中文乱码问题详解 在Java Web开发中,经常遇到的一个问题是处理GET请求中的中文参数时出现乱码。这个问题主要是因为浏览器发送GET请求时,参数默认使用ISO-8859-1编码格式,而服务器端通常采用...

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

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

    java中文乱码解决方案和经验

    ### Java中文乱码解决方案与经验 #### 一、字节与Unicode 在Java中处理文本时,经常会遇到中文乱码的问题。这是因为Java内部使用的是Unicode编码标准,而外部数据源如文件、网络传输等通常使用的是字节流,且可能...

    解决java所有中文乱码集合

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

    java中文乱码字符集解决大全

    ### Java中文乱码字符集解决大全 #### 一、引言与背景 随着信息技术的全球化发展,越来越多的应用程序需要处理多种语言文字,特别是在中文环境中,如何确保Java程序能够正确地处理中文字符,避免出现乱码问题,...

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

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

    Java字符流和字节流对文件操作的区别

    Java的IO流是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中文乱码问题详解--- java中文乱码问题详解

    4. **输入输出流的编码设置**:Java程序在进行文件读写或网络通信时,需要显式地指定字符集编码,以避免乱码问题的发生。 5. **浏览器与服务器间的编码一致性**:对于Web应用程序而言,客户端与服务器之间必须保持...

    Java实现文件下载并解决中文文件名乱码

    ### Java实现文件下载并解决中文文件名乱码 在日常的Web开发中,经常会遇到需要让用户下载文件的需求,尤其是在企业级应用中。然而,在实际操作过程中可能会遇到一个常见问题:当文件名包含中文字符时,下载后的...

    Netty进制转换乱码问题

    3. **解决乱码问题**:当客户端接收到乱码时,首先要确认发送端和接收端是否使用了相同的字符编码。可以尝试在接收端使用不同的解码方式进行解码,如`Charset.decode()`方法,指定正确的编码格式,如`...

Global site tag (gtag.js) - Google Analytics