欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

转换流读写操作 java.io.OutputStreamWriter ,java.io.InputStreamReader

程序员文章站 2022-03-25 21:20:45
package seday07; import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter; /** * @author xingsir * 字符流 * java将流按照读 ......

package seday07;

import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.outputstreamwriter;

/**
* @author xingsir
* 字符流
* java将流按照读写数据的单位画分为了两类:
字节流:以字节为单位读写数据,超类:inputstream,outputstream
字符流:以字符为单位读写数据,超类:reader,writer
*
* 字符流底层实际还是按照字节形式读写,但是字符与字节的转换操作字符流自行完成。所以字符流只适合读写文本数据。
*
* 转换流
* java.io.outputstreamwriter
* java.io.inputstreamreader
* 转换流是一对高级流,是可以连接在字节流上的字符流。实际应用中当我们读写文本数据时通常不会直接操作这对流,
但是他们在流连接中是非常重要的一环。
*/
public class oswdemo {

public static void main(string[] args) throws ioexception{
//先创建一个文件osw.txt

fileoutputstream fos=new fileoutputstream("osw.txt");//文件流写操作
/*
* 如果不指定第二个参数,则是按照系统默认字符集
* 将写出的文本数据转换为字节,指定后则按照指定 的字符集转换
*/
outputstreamwriter osw =new outputstreamwriter(fos,"gbk");//指定为gbk
osw.write("大河向东流");
osw.write("天上的星星参北斗");
osw.write("说走,咱就走");

system.out.println("写出完毕");
osw.close();

}

}

 

 

//============================================================================

 

package seday07;

import java.io.fileinputstream;
import java.io.ioexception;
import java.io.inputstreamreader;

/**
* @author xingsir
* 读取文本数据,inputstreamreader
*/
public class isrdemo {

public static void main(string[] args) throws ioexception{

fileinputstream fis =new fileinputstream("osw.txt");//文件流读操作
//读取文本数据
inputstreamreader isr =new inputstreamreader(fis);
//一次读取一个字符
int len=-1;
while ((len=isr.read())!=-1) {
system.out.print((char)len);//转换成char类型

}
isr.close();//关闭
}

}