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

java 缓冲流和转换流

2012-12-19 11:24 281 查看
1. 缓冲流

java IO通过缓冲流来提高读写效率,普通的字节、字符流都是一个字节一个字符这样读取的,而缓冲流则是将数据先缓冲起来,然后一起写入或者读取出来。经常使用的是readLine()方法,表示一次读取一行数据。

Java代码







package com.io;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;
import java.io.FileInputStream;

import java.io.FileOutputStream;

public class TestBufferedString {

public static
void main(String[] args) throws Exception {

// 指定要读取文件的缓冲输入字节流
BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\\photo\\IMG0460A.jpg"));

File file = new File("F:\\IMG0460A.jpg");

if (file != null) {

file.createNewFile();
}
// 指定要写入文件的缓冲输出字节流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));

byte[] bb = new
byte[1024];// 用来存储每次读取到的字节数组

int n;// 每次读取到的字节数组的长度

while ((n = in.read(bb)) != -1) {

out.write(bb, 0, n);// 写入到输出流

}
out.close();// 关闭流
in.close();
}

}

package com.io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestBufferedString {

public static void main(String[] args) throws Exception {
// 指定要读取文件的缓冲输入字节流
BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\\photo\\IMG0460A.jpg"));
File file = new File("F:\\IMG0460A.jpg");
if (file != null) {
file.createNewFile();
}
// 指定要写入文件的缓冲输出字节流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组
int n;// 每次读取到的字节数组的长度
while ((n = in.read(bb)) != -1) {
out.write(bb, 0, n);// 写入到输出流
}
out.close();// 关闭流
in.close();
}

}

2. 转换流

java提供将字节流转化为字符流读写方式的OutputStreamWriter和InputStreamReader

Java代码







package com.io;
import java.io.*;
public class OutputStreamWriterDemo01

{
public static
void main(String args[]) throws Exception{
//所有异常抛出
//写入数据
File file=new File("d:"+File.separator+"test.txt");

Writer writer=null;
//字符输出流
writer=new OutputStreamWriter(new FileOutputStream(file));
//字节流变为字符流
String str="hello world!!!!";

writer.write(str); //使用字符流输出

writer.close();

//读取文件

File f = new File("d:" + File.separator +
"test.txt") ;
Reader reader = null ;

reader = new InputStreamReader(new FileInputStream(f)) ;
// 将字节流变为字符流
char c[] = new
char[1024] ;

int len = reader.read(c) ;
// 读取
reader.close() ; // 关闭

System.out.println(new String(c,0,len)) ;

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: