如何快速的了解java的I/O流,由浅到深

Java 的I/O流

什么是流

1.流是一种对于文件的读与写的操作

  • 流是有顺序的,流的数据是有顺序的
  • 先进先出
  • 流可以控制数据的流动的方向

流的分类

  • 根据流动方向:输入流 输出流
  • 根据单位: 字节流 字符流
  • 根据功能; 节点流 高级流(处理流)
  • 封装了一些类
  • ***流的基类
  •  		  输入流                   输出流 
    
  • 字节流 InputStream OutputStream
  • 字符流 Reader Writer
    读取数据 写数据的

InputStream
此抽象类是表示字节输入流的所有类的超类 该流可以读取任意的文件:图片文件 视频文件 音频文件 .txt

public class IoTest {
public static void main(String[] args) throws IOException {
	//文件的路径必须是存在改文件的,创建文件成功,代表流已经开始
	InputStream inputStream= new FileInputStream("a.txt");
	//读取
	//show1();
	byte[] buf=new byte[1024];
	int len=0;
	while((len=inputStream.read(buf))!=-1) {
		//将数据读取到数组中,并且返回读取的个数,存储到len中,并且判断是否达到结尾
		System.out.println(new String(buf,0,len)+"读取出来啦 ");
	}
	inputStream.close();

}
public static void show1() throws IOException {
	InputStream inputStream= new FileInputStream("a.txt");
	int data=0;
	while((data=inputStream.read())!=-1) {
		System.out.print((char)data+" ");
	}
	inputStream.close();
}
}

**OutputStream **
此抽象类是表示输出字节流的所有类的超类 用来将流中的数据写到文件中去,任意文件

public class IoTest1 {
public static void main(String[] args) throws IOException {
	OutputStream outputStream=new FileOutputStream("c.txt");
	outputStream.write(97);
	outputStream.write(98);
	
	byte[] bs="hello".getBytes();
	outputStream.write(bs);
	outputStream.close();
	
	}
}

经典案例

	如何将 将一个a.txt文件,剪切到d:\\test\\a.txt中 
public class IoTest2 {
public static void main(String[] args) throws IOException {
	File file=new File("a.txt");
	InputStream reader=new FileInputStream(file);//写的方法可以直接在里面文件
	OutputStream writer=new FileOutputStream("D:\\test2\\a.txt");
	byte[] buf=new byte[1024];
	int len=0;
	while((len=reader.read())!=-1) {
		writer.write(buf,0,len);
	}
	reader.close();
	writer.close();
	file.delete();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值