字节流:
一个一个字节的拷贝:
try {
InputStream inputStream = new FileInputStream("D:\\1.wmv");
int data = 0;
OutputStream outputStream = new FileOutputStream("F:\\1.wmv");
while ((data = inputStream.read())!=-1) {
System.out.println(data);
}
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
速度奇慢。
装车在拷贝:
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class Test02 {
public static void main(String[] args) {
try {
InputStream inputStream = new FileInputStream("D:\\1.wmv");
int length = 0;
byte[]car = new byte[1024];
OutputStream outputStream = new FileOutputStream("F:\\1.wmv");
while ((length = inputStream.read(car))!=-1) {
outputStream.write(car, 0, length);
}
outputStream.flush();
outputStream.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
因为装车,所以速度很快。
下面用缓冲流:
//缓冲流
try {
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(new File("D:\\1.wmc")));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("D:\\3.flac"));
byte[] car=new byte[1024];
int length=0;
while ((length=bufferedInputStream.read(car))!=-1) {
bufferedOutputStream.write(car,0,length);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
bufferedInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
缓冲流:数据在复制过程中从磁盘过去。
缓冲字节流,提高装车卸车速度,不需要直接访问硬盘。
下面是缓冲字符流:
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\music.flac"));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\3.flac"));
char[] car=new char[1024];
int length=0;
while ((length=bufferedReader.read(car))!=-1) {
bufferedWriter.write(car,0,length);
}
bufferedWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
}
转换流:
//转换流:因为操作字符文件时有可能因为编码不一致造成乱码,字节流向字符流的转换
try {
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:\\1.txt"),"UTF-8");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:\\2.txt"),"UTF-8");
char[] car=new char[1024];
int length=0;
while ((length=inputStreamReader.read(car))!=-1) {
outputStreamWriter.write(car,0,length);
}
outputStreamWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}