您的位置:首页 > Web前端

FileInputStream与BufferedInputStream、FileInputStream与FileReader区别

2014-03-27 20:38 127 查看
FileInputStream与BufferedInputStream区别:
FileInputStream是字节流,BufferedInputStream是字节缓冲流,使用BufferedInputStream读资源比FileInputStream读取资源的效率高(BufferedInputStream的read方法会读取尽可能多的字节),且FileInputStream对象的read方法会出现阻塞;

FileInputStream与FileReader区别:
FileInputStream是字节流,FileReader是字符流,用字节流读取中文的时候,可能会出现乱码,而用字符流则不会出现乱码,而且用字符流读取的速度比字节流要快;

详细代码

FileStreamDemo.java
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("FileCopy.java");
FileOutputStream out = new FileOutputStream("fileoutput.txt");
byte[] bytearray = new byte[1024];
do {
in.read(bytearray, 0, 1024);
out.write(bytearray);
} while (in.available() > 0);
in.close();
out.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedStreamDemo.java
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("FileCopy.java");
FileOutputStream out = new FileOutputStream("bufferoutput.txt");
BufferedInputStream bufferedIn = new BufferedInputStream(in);
BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
byte[] data = new byte[1];
while (bufferedIn.read(data) != -1) {
bufferedOut.write(data);
}
bufferedOut.flush();
bufferedIn.close();
bufferedOut.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
import java.io.*;
class  CopyText
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("FileCopy.java");
FileWriter fw = new FileWriter("filewriter.txt");
char[] arr = new char[1024];
int num = 0;
while((num=fr.read(arr))!=-1)
{
fw.write(arr,0,num);
}
fw.close();
fr.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: