字符流与字节流的转换

转载 2016年05月31日 09:42:07

字节流转字符流

字符流和字节流是根据处理数据的不同来区分的。字节流按照8位传输,字符流按照16位传输 
由于字符流使用Unicode字符集,支持多国文字,因此若流要跨越多种平台传输,应使用字符流。

一、InputStreamReader类

InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

构造方法:

InputStreamReader isr = new InputStreamReader(InputStream in);//构造一个默认编码集的InputStreamReader类

InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//构造一个指定编码集的InputStreamReader类。

参数 in对象通过 InputStream in = System.in;获得。//读取键盘上的数据。

                                或者    InputStream in = new FileInputStream(String fileName);//读取文件中的数据。可以看出FileInputStream 为InputStream的子类。

InputStreamReader(InputStream in)//根据默认字符集创建

InputStreamReader(InputStream in,Charset cs)//使用给定字符集创建

InputStreamReader(InputStream in,CharsetDecoder dec)//使用给定字符集解码器创建

InputStreamReader(InputStream in,String charsetName)//使用指定字符集创建



主要方法:int read();//读取单个字符。

                  int read(char []cbuf);//将读取到的字符存到数组中。返回读取的字符数。

 

二、OutputStreamWriter类

OutputStreamWriter 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

构造方法:

OutputStreamWriter osw = new OutputStreamWriter(OutputStream out);//构造一个默认编码集的OutputStreamWriter类

OutputStreamWriter osw = new OutputStreamWriter(OutputStream out,String charsetName);//构造一个指定编码集的OutputStreamWriter类。

参数 out对象通过 InputStream out = System.out;获得。//打印到控制台上。

                               或者    InputStream out = new FileoutputStream(String fileName);//输出到文件中。可以看出FileoutputStream 为outputStream的子类。

OutputStreamWriter(outputstream out)//根据默认的字符集创建

OutputStreamWriter(outputstream out,charset cs)//使用给定的字符集创建

OutputStreamWriter(outputstream out,charsetDecoder dec)//使用组定字符集创建

OutputStreamWriter(outputstream out,String charsetName)//使用指定字符集创建


主要方法:void write(int c);//将单个字符写入。

                  viod write(String str,int off,int len);//将字符串某部分写入。

                  void flush();//将该流中的缓冲数据刷到目的地中去。

例子:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class KeyinTest {
    public static void main(String[] args) {
        try (
                //将System.in转化为Reader对象  
                InputStreamReader reader = new InputStreamReader(System.in);
                //将普通的Reader包装成BufferReader  
                BufferedReader br = new BufferedReader(reader);
        ) {
            String buffer = null;
            //采用循环方式来逐行读取数据  
            while ((buffer = br.readLine()) != null) {
                //如果读取的是"exit"则程序退出  
                if (buffer.equals("exit")) {
                    System.exit(1);
                }
                //打印读出的内容  
                System.out.println("输入的内容为:" + buffer);
            }
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
}  


Java字符流和字节流

  • 2016年03月09日 16:41
  • 60KB
  • 下载

黑马程序员----IO流(字符流、字节流、转换流)

——- android培训、java培训、期待与您交流! ———- IO流、字符流、字符流缓冲区、装饰类、字节流、字节流缓冲区、转换流、MyReader类...

Java IO字符流和字节流

  • 2012年04月28日 08:36
  • 51KB
  • 下载

黑马程序员——IO(一)字符流,字节流,缓冲流,转换流

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- IO流是用来处理设备之间的数据传输。 Java程序中,对于数据的输入/输出操作以”流(stream)” 的方...

JavaSE---IO流(字节流、转换流、字符流)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员——Java基础知识——IO(字符流、字节流、转换流、File)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! IO、字符流、字节流、转换流、File...

IO流2(字符流缓冲区、字节流、装饰设计模式、转换流)

一、 字符流缓冲区            缓冲区的出现提高了对数据的读写效率,缓冲区要结合流才可以使用,所以在创建缓冲区之前,必须要先有流对象;            对应类:           ...

黑马程序员——Java基础---IO流(字符流、字节流、转换流、流操作规律)

简述: IO(Input Output) IO流用于处理设备之间的数据传输。(比如硬盘上的文件,内存中驻留的数据)IO流是用于操作数据的,数据的最常见体现形式是:文件。 ...

黑马程序员_10字节流、字符流、转换流、控制流、数据流、字节数组流

一、流简介 按数据流的方向不同分:输入流 输出流 按处理数据单位不同分:字节流 字符流 按照功能不同可以分为: 节点流:InputStrea...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符流与字节流的转换
举报原因:
原因补充:

(最多只允许输入30个字)