Java文件的读(写)汇总[ InputStream(Reader)、BufferedInputStream 、BufferedReader、FileInputStream、FileReader ]

版权声明:文章原创,未经允许请勿转载 https://blog.csdn.net/DanBo_C/article/details/89645045
[ InputStream 、InputStreamReader、BufferedInputStream 、BufferedReader、FileInputStream、FileReader ]

&&

[ OutputStream、OutputStreamWriter、BufferedOutputStream、BufferedWriter、FileOutputStream、FileWriter ]

InputStream && OutputStream:

  • 是老大!!!
  • 将字节流转换成字符流

InputStreamReader&& OutputStreamWriter:

  • 将字节流转换成字符流 —> 创建字符流缓冲区

BufferedInputStream && BufferedOutputStream:

  • 数据流的缓存,没有缓冲的操作
  • 读一个字节,写一个。磁盘的IO比内存的操作慢
  • 所以不带缓冲的额流会比带缓冲的流慢

BufferedReader && BufferedWriter

  • 高效读取
  • 从字符输入流中读取文本,缓冲各个字符

FileInputStream && FileOutputStream

  • 老大InputSream的子类
  • 一般用来读取二进制文件
  • 文本文件使用read(byte[] b)方法读取整个文件,再byte数组转换为String

FileReader && FileWriter

  • InputStreamReader的子类
  • 按字符读取流中数据

还有很多。。。更新中。。。


InputStream && OutputStream

	private static void rwIOStream() throws Exception {
		InputStream in =new FileInputStream("fileIn\\txt1");
		OutputStream out = new FileOutputStream("fileOut\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len=in.read())!=-1)
		{
			out.write(len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		in.close();
		out.close();
	}

InputStreamReader&& OutputStreamWriter

	private static void rwIOStreamRW() throws Exception {
		InputStreamReader inReader =new InputStreamReader(new FileInputStream("fileIn\\txt1"));
		OutputStreamWriter outWriter =new OutputStreamWriter(new FileOutputStream("fileIn\\txt1"));
		int len;
		long begin = System.currentTimeMillis();
		while((len=inReader.read())!=-1)
		{
			outWriter.write(len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		inReader.close();
		outWriter.close();
	}

BufferedInputStream && BufferedOutputStream

	private static void rwBufferedIOStram() throws Exception {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream("fileIn\\txt1"));
		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("fileOut\\txt1"));
		long begin = System.currentTimeMillis();
		int len;
		while((len=in.read())!=-1)
		{
			out.write(len);
			//System.out.print((char)len);	//	字符打印
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		in.close();
		out.close();
	}

BufferedReader && BufferedWriter

	private static void rwBufferedRWr() throws Exception {
		BufferedReader reader = new BufferedReader(new FileReader("fileIn\\txt1"));
		BufferedWriter writer = new BufferedWriter(new FileWriter("fileIn\\txt1"));
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}

FileInputStream && FileOutputStream

	private static void rwFileIOStream() throws Exception {
		FileInputStream reader = new FileInputStream("fileIn\\txt1");
		FileOutputStream writer = new FileOutputStream("fileIn\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}

FileReader && FileWriter

	private static void rwFile() throws Exception {
		FileReader reader = new FileReader("fileIn\\txt1");
		FileWriter writer = new FileWriter("fileOut\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}


程序

package file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class filecopy {

	public static void main(String[] avg) throws Exception
	{
		try {
			
			//复制例
			song();
			//字符读写 切割处理
			rwFileSplitEnglish();
			
			//InputStream && OutputStream
			rwIOStream();
			//InputStreamReader && OutputStreamWriter
			rwIOStreamRW();
			//BufferedInputStream && BufferedOutputStream
			rwBufferedIOStram();
			//BufferedReader && BufferedWriter
			rwBufferedRWr();
			//FileInputStream && FileOutputStream
			rwFileIOStream();
			//FileReader && FileWriter
			rwFile();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static void rwIOStream() throws Exception {
		InputStream in =new FileInputStream("fileIn\\txt1");
		OutputStream out = new FileOutputStream("fileOut\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len=in.read())!=-1)
		{
			out.write(len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		in.close();
		out.close();
	}

	private static void rwIOStreamRW() throws Exception {
		InputStreamReader inReader =new InputStreamReader(new FileInputStream("fileIn\\txt1"));
		OutputStreamWriter outWriter =new OutputStreamWriter(new FileOutputStream("fileIn\\txt1"));
		int len;
		long begin = System.currentTimeMillis();
		while((len=inReader.read())!=-1)
		{
			outWriter.write(len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		inReader.close();
		outWriter.close();
	}

	private static void rwBufferedIOStram() throws Exception {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream("fileIn\\txt1"));
		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("fileOut\\txt1"));
		long begin = System.currentTimeMillis();
		int len;
		while((len=in.read())!=-1)
		{
			out.write(len);
			//System.out.print((char)len);	//	字符打印
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		in.close();
		out.close();
	}
	
	private static void rwBufferedRWr() throws Exception {
		BufferedReader reader = new BufferedReader(new FileReader("fileIn\\txt1"));
		BufferedWriter writer = new BufferedWriter(new FileWriter("fileIn\\txt1"));
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}
	
	private static void rwFileIOStream() throws Exception {
		FileInputStream reader = new FileInputStream("fileIn\\txt1");
		FileOutputStream writer = new FileOutputStream("fileIn\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}

	private static void rwFile() throws Exception {
		FileReader reader = new FileReader("fileIn\\txt1");
		FileWriter writer = new FileWriter("fileOut\\txt1");
		int len;
		long begin = System.currentTimeMillis();
		while((len = reader.read())!=-1)
		{
			writer.write(len);
			//System.out.print((char)len);
		}
		long end = System.currentTimeMillis();
		System.out.println(end-begin);
		reader.close();
		writer.close();
	}

	private static void rwFileSplitEnglish() throws Exception {
		String str = "";
		FileReader reader = new FileReader("fileIn\\txt1");
		int len;
		while((len = reader.read())!=-1)
			str +=(char)len;
		reader.close();
		
		System.out.println(str);
		
		String re  = " ";
		String s[] = str.split(re);
		
		for (int i = 0; i < s.length; i++) {
			System.out.print(s[i]);
		}
		System.out.println(str.length());
	}
	
	private static void song() throws Exception {
		InputStream in = new FileInputStream("fileIn\\你一生的故事.mp3");
		
		OutputStream out =  new FileOutputStream("fileOut\\你一生的故事2.mp3");
		int len;
		long begintime = System.currentTimeMillis();
		while((len=in.read())!=-1)
		{
			out.write(len);
		}
		long endtime = System.currentTimeMillis();
		System.out.println(endtime-begintime);
		in.close();
		out.close();
	}
}

猜你喜欢

转载自blog.csdn.net/DanBo_C/article/details/89645045
今日推荐