IO 字节流

字节流:

一个一个字节的拷贝:

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();
		}
发布了91 篇原创文章 · 获赞 8 · 访问量 4722

猜你喜欢

转载自blog.csdn.net/niuxikun/article/details/104696892