您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记(三十三)- 字节流转换为字符流

2015-03-28 08:19 501 查看

将字节流转换为字符流

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

/*
* InputStreamReader和OutputStreamWriter类
* 用来将字节流转换为字符流
*
* 注:Java中没有提供将字符流转换为字节流的方法
*/
public class Test04 {
public static void main(String[] args) throws IOException {
test2();
}

// 将文件字节输入流转换为字符流
public static void test1() throws IOException {
// 定义文件字节输入流
InputStream is = new FileInputStream("D:\\Java\\hello.txt");
// 将其转换为字符流
InputStreamReader isr = new InputStreamReader(is);
int data;
while ((data = isr.read()) != -1) {
System.out.println((char) data);
}
isr.close();
is.close();
}

// 将文件字节输出流转换字符流
public static void test2() throws IOException {
// 定义文件字节输出流
OutputStream os = new FileOutputStream("D:\\Java\\hello.txt");
// 将其转换为字符流,指定写入时使用的编码
OutputStreamWriter osw = new OutputStreamWriter(os, "gbk");
//将标准字节输入流转换为字符流,指定读取时使用的编码
InputStreamReader isr = new InputStreamReader(System.in, "gbk");
int data;
System.out.println("请输入数据:");
while((data=isr.read())!='q'){
osw.write(data);
osw.flush();
}
isr.close();
os.close();
}
}


为字符输入输出流添加缓冲

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

/*
* BufferedReader和BufferedWriter缓冲流
* 为字符输入输出流添加缓冲
*/
public class Test05 {
public static void main(String[] args) throws IOException {
test2();
}

// 为字符输入流添加缓冲
public static void test1() throws IOException {
// 将标准字节输入流转换为字符流
InputStreamReader isr = new InputStreamReader(System.in, "gbk");
// 为字符输入流添加缓冲
BufferedReader br = new BufferedReader(isr);
System.out.println("请输入数据:");
String str = null;
while ((str = br.readLine()) != null) {
System.out.println(str);
}
br.close();
isr.close();
}

// 使用缓冲流复制文件
public static void test2() throws IOException {
// 定义一个文件字符输入流
FileReader fr = new FileReader("D:\\Java\\hello.txt");
// 为输入流添加缓冲
BufferedReader br = new BufferedReader(fr);
// 定义一个文件字符输出流
FileWriter fw = new FileWriter("D:\\Java\\world.txt");
// 为输出流添加缓冲
BufferedWriter bw = new BufferedWriter(fw);
String str = null;
while ((str = br.readLine()) != null) {
bw.write(str);
}
bw.flush();
System.out.println("文件复制成功!");
bw.close();
br.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  缓冲流 转换 字符