Java IO流 个人总结(常用到的)

本文深入探讨Java中IO流的概念及应用,包括流的分类、字节流与字符流的区别及转换方法,并通过实例演示了如何使用BufferedReader与FileInputStream进行文件读取操作。

Java IO流 个人总结

首先流的分类:
按方向分:输入流 OR 输出流
按单位分:字节流 OR 字符流
按功能分:节点流 OR 过滤流

在这里插入图片描述

//字节流到字符流的转换  桥转换器可以指定编码
else if(("focus.txt").equals(fs.getName().toLowerCase())){
                    BufferedReader bur=new BufferedReader(new InputStreamReader(new FileInputStream(fs),"gbk"));
                    BufferedWriter buw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream( "D:\\IO汇总.txt",true),"gbk"));
                    String str;
                    while ((str=bur.readLine())!=null){
                       buw.write(str);
                       buw.newLine();
                    }
                 buw.close();
                }
FileInputStream 以-1作为读取结束的标识
BufferedInputStream 同样以-1作为读取结束的标识

BufferedReader 不以-1作为结束标识 而是null
//字符流
import java.io.*;
public class TestBufferedReader{
	public static void main(String[] args)throws Exception{
		BufferedReader br = new BufferedReader(new FileReader("focus.txt"));
		String str;
		while((str = br.readLine())!=null){
			if(str.contains("Stream")){
				System.out.println(str);
			}
		}
		br.close();
	}
}
//字节流
import java.io.*;
public class TestFileInputStream{
	public static void main(String[] args)throws Exception{
		FileInputStream fis = new FileInputStream("abc.txt");
		byte[] data = new byte[3];
		int len;
		while((len = fis.read(data))!=-1){
			for(int i = 0;i<len;i++){
				System.out.print((char)data[i]);
			}
		}
		/*
		int data;
		while((data = fis.read())!=-1){
			System.out.print((char)data);
		}
		*/
		fis.close();

	}
}

几点注意:
1.节点输出流 创建对象的时候 即便连接的文件不存在
也会在创建流的那一刻 自动创建文件 不需要程序员手动建
其实File类有个createNewFile()

2、但是如果连接的目录结构不存在 则直接出现异常
所以File类有个mkdirs() 一等优先级

3. 节点输出流 创建对象的时候 如果连接的文件已经存在
也会在创建流的那一刻 被新的空白文件直接替换
所以务必注意 节点输出流是有很强的杀伤性的
如果我们的需求是 想要在原有内容之后追加新的内容
此时可以使用构造方法第二个参数指定追加模式开启
new FileOutputStream(“abc.txt”,true);
true => 代表追加模式开启
4.使用IO流 请务必在读写结束的第一时间关流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值