Java学习笔记20(流Stream到底有哪些)

0.本篇摘要

字节流-缓冲流(重点)
输入流InputStream-FileInputStream-BufferedInputStream
输出流OutputStream-FileOutputStream-BufferedOutputStream

字符流-缓冲流(重点)
输入流Reader-FileReader-BufferedReader
输出流Writer-FileWriter-BufferedWriter

转换流
InputSteamReader和OutputStreamWriter

对象流(难点)
ObjectInputStream和ObjectOutputStream 序列化
反序列化
随机存取流RandomAccessFile(掌握读取、写入)

1.缓冲流

字节流,字符流,这种是计算机和硬盘之间的io, 读写速度慢。 缓冲流基于内存的io操作比基于硬盘的io操作快75000倍

BufferedInputStream 代替 FileInputStream
BufferedOutputStream 代替 FileOutputStream
BufferedReader 代替 FileReader
BufferedWriter 代替 FileWriter

在这里插入图片描述

基于内存的io操作比基于硬盘的io操作快75000倍

1.1缓冲字节流

BufferedInputStream 代替 FileInputStream
BufferedOutputStream 代替 FileOutputStream
代码示例:

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

public class Test {
   
	public static void main(String[] args) throws Exception {
   
		Test.testBufferedInputStream();
		Test.copyFile(inPath, outPath);//有参的方法,调用
	}
	/**
	 * 缓冲字节输入流
	 * BufferedInputStream
	 * @throws Exception
	 */
	public static void testBufferedInputStream() throws Exception {
   
		//文件字节输入流对象
		FileInputStream in = new FileInputStream("D:\\tt.txt");
		//把文件字节输入流放到缓冲字节输入流对象
		BufferedInputStream br = new BufferedInputStream(in);
		//因为是字节流,要定义byte数组存放
		byte[] b = new byte[10];
		
		//输出为字符串
		System.out.println(new String(b));
		
		//关闭流,先开后关。
		br.close();
		in.close();//去main方法中测试
		
	}

	/**
	 * 缓冲字节输出流
	 * BufferedOutputStream
	 */
	public static void testBufferedOutputStream() throws Exception{
   
		//创建字节输出流对象
		FileOutputStream out = new FileOutputStream("D:\\tt.txt");
		
		//把字节输出流对象放到缓冲字节输出流中
		BufferedOutputStream bo = new BufferedOutputStream(out);
		
		String s = "hello world";
		
		bo.write(s.getBytes());//写到内存中
		
		bo.flush();//刷到硬盘上
		
		//关闭流的时候,本着一个最晚开的最早关,依次关
		bo.close();
		out.close();
		
	}	
	
	
	public static void copyFile(String inPath, String outPath) throws Exception {
   
		
		BufferedInputStream br = new BufferedInputStream(new FileInputStream(inPath));//这里是采用匿名对象的方法
		
		BufferedOutputStream bo = new BufferedOutputStream<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值