IO流之字符流

字符流是把字节(byte)转换成字符(char)来向文件进行输入输出的。

类InputStreamWrite是把byte流按照指定的编码解析为char流,

类OutputStreamRead是char流按照指定的编码解析成byte流。

package com.test1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ByCharString {
	public static void main(String[] args)throws IOException {
		FileInputStream fis = new FileInputStream("test.txt");
		//create InputStreamReader object,fis is a InputStream object,"gbk" is designated to be converted to encoding
		InputStreamReader isr = new InputStreamReader(fis,"gbk");

		FileOutputStream fos = new FileOutputStream("test1.txt");
		//create OutputStreamWriter object,fos is a OutputStream object,"gbk" is designated to be converted to encoding
		OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");

		char [] input = new char[100];			
		int i;
		while((i=isr.read(input))!=-1){			//returns the number of characters read
			osw.write(input,0,i);
		}
		osw.flush();			//flush the buffer
		osw.close();			//close file
		fos.close();
		isr.close();
		fis.close();
	}
}

类FileRead和类FileRead也可以进行字符流的输入输出

如:

package com.test1;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class test {
	public static void main(String[] args) throws IOException{
		//create FileReader object
		FileReader fr = new FileReader("test.txt");
		//create FileWriter object
		FileWriter fw = new FileWriter("test1.txt");
		
		char [] input = new char[100];
		int i;
		while((i=fr.read(input,0,input.length))!=-1){
			fw.write(input, 0, i);
		}
		fw.close();
		fr.close();
	}
}

类BufferedWrite和类BufferedRead 这两个类为字符流提供了能够进行读取一行的操作,读取时并不能换行,

只能单独使用newLine()方法进行换行。

package com.test1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ByBufferedCharStream {
	public static void main(String[] args)throws IOException {
		FileInputStream fis = new FileInputStream("test.txt");
		FileOutputStream fos = new FileOutputStream("test1.txt");
		InputStreamReader isr = new InputStreamReader(fis,"gbk");
		OutputStreamWriter osw = new OutputStreamWriter(fos,"gbk");
		//create BufferedReader object,isr is a InputStreamReader object
		BufferedReader br = new BufferedReader(isr);
		//create BufferedWrite object,osw is a OutputStreamReader object
		BufferedWriter bw = new BufferedWriter(osw);

		String str;
		while((str=br.readLine())!=null){		//Read one line at a time
			bw.write(str);				//Write one line at a time
			bw.newLine();				//line feed
		}
		bw.flush();
		bw.close();
		br.close();
		osw.close();
		fos.close();
		isr.close();
		fis.close();
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值