技术文章 > java >  java基础 > 正文

转换流在java中的两种类

小妮浅浅

本教程操作环境:windows7系统、java10版,DELL G3电脑。  

1.InputStreamReader类

1)概念

转换流 java.io.InputStreamReader ,是Reader的子类,,读取字节并使用指定的字符集将其解码为字符。它的字符集可以自定义,也可以用平台的默认字符集。

2)构造方法

InputStreamReader(InputStream in): 创建一个使用默认字符集的字符流。
InputStreamReader(InputStream in, String charsetName): 创建一个指定字符集的字符流。

3)实例

public class Demo02 {
    public static void main(String[] args) throws IOException {
        //明确数据源
        FileInputStream fis=new FileInputStream("D:\\java\\a.txt");
        //创建转换流对象
        InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
        int len=0;
        char[] ch=new char[1024];
        //开始读
        while((len=isr.read(ch))!=-1){
            System.out.println(new String(ch,0,len));//若是不写0和len就转为1024个字节,后面的为空格代替
        }
        //释放资源
        isr.close();
    }
}

2.ObjectOutputStream类

1)概念

java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。

2)构造方法

OutputStreamWriter(OutputStream in): 创建一个使用默认字符集的字符流。
OutputStreamWriter(OutputStream in, String charsetName): 创建一个指定字符集的字符流。

3)实例

public class Demo01 {
    public static void main(String[] args) throws IOException {
        //明确目的地
        FileOutputStream fos=new FileOutputStream("D:\\java\\a.txt");
        //创建转换流对象   默认GBK
        OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");
        //写入字符
        osw.write("你好");
        osw.flush();
        //释放资源(功能流需要关,这里的fos被osw调用的,不需要咱关闭,由osw负责关闭---谁调用,谁负责关闭)
        osw.close();
}

以上就是转换流在java中两种类的使用,学会后我们可以把字符流和字节流进行相互的转换,同时不会被编码问题所困扰,学会后就代码部分练习一下吧。

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  java IO流序列化的概念
  IO流反序列化在java中的实现
  IO流序列化在java中的作用及不足
  java中断机制解决办法
  java缓冲流的两种类型
  java中的轮换流是什么
相关视频章节
  什么是tkinter窗口
  例子3 登录窗口
  例子2 登录窗口
  例子1 登录窗口
  pack grid place 放置位置
作者信息

小妮浅浅

认证0级讲师

最近文章
python在协程中增加任务 457
python pyg2plot的原理 353
python中pyg2plot如何使用? 160
推荐视频
视频教程分类