IO流

IO流的总结

1. IO的流向说明图

在这里插入图片描述

2. 字节流

2.1 一切文件皆字节

一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都是一个一个字节,那么在传输时也是一样。所以,字节流可以是传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终是二进制的数据。

2.2 字节输出流【OutputStream】

在这里插入图片描述

FileOutputStrem

在这里插入图片描述
常用:
在这里插入图片描述
在这里插入图片描述

write(int b)方法
FileOutputStream fs = new FileOutputStream("gg.txt");
fs.write(97);
fs.close();

在这里插入图片描述
注意:在调构造方法的时候就创建了文件,并不是write时才创建

write(byte[] b)方法

注意:一次写多个字节,如果写的第一个字节是正数(0~127间),那么显示的时候会查询ASCII表;如果写的第一个字节是负数,那么第一个会和第二个字节组成一个中文显示,查询系统的默认码表(GKB);

         FileOutputStream fs = new FileOutputStream("gg2.txt");
		byte [] bytes = {65,66,-67,68,69};
		fs.write(bytes);
		fs.close();

在这里插入图片描述

write(byte[] b,int off,int len)方法

将字节数组的一部分写入文件中

        FileOutputStream fs = new FileOutputStream("gg2.txt");
		byte[] bytes ="信息2".getBytes();
		fs.write(bytes,0,bytes.length);
		fs.close()
追加写/续写(不覆盖)

在这里插入图片描述

FileOutputStream fs = new FileOutputStream("gg2.txt",true);
		byte[] bytes ="呵呵".getBytes();
		for(int i=0;i<5;i++){
			fs.write(bytes,0,bytes.length);
			fs.write("\r\n".getBytes());
		}
		  
		fs.close();

2.3 字节输人流【InputStream】

在这里插入图片描述

FileOutputStrem

![(https://img-blog.csdnimg.cn/20201101140755173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDA4NzEy,size_16,color_FFFFFF,t_70#pic_center)
在这里插入图片描述
复制文件例子:

package com.chw.io;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class FileInputStreamTest {

	public static void main(String[] args) throws Exception {
		test01();
	}

	private static void test01() throws Exception {
		FileInputStream fis = new FileInputStream("gg2.txt");
		FileOutputStream fos = new FileOutputStream("gg3.txt");
		//ByteArrayOutputStream baos = new ByteArrayOutputStream();
		 byte[] buff = new byte[1024];
		int len;
		while((len=fis.read(buff))!=-1){
			fos.write(buff, 0,len);
			//baos.write(buff, 0, len);
		}
		fis.close();
		fos.close();
	}
}

3. 字符输入流 【Reader】

在这里插入图片描述

FileReader

在这里插入图片描述

package com.chw.io;

import java.io.FileReader;

public class ReaderTest {
	 public static void main(String[] args) throws Exception {
		test01();
	}

	private static void test01() throws Exception {
		
		FileReader fr = new FileReader("gg3.txt");
		
//		int len;
//		while((len=fr.read())!=-1){
//			System.out.print(new StringBuffer(len));
//		}
		
	   char [] cs = new char[1024];
	   int len;
	   while((len=fr.read(cs))!=-1){
		   System.out.println(new String(cs));
	   }
		
		
		fr.close();
	}
}

4. 字符输出流 【Writer】

在这里插入图片描述

FileWriter在这里插入图片描述

在这里插入图片描述

注意:输出流的flush方法和close方法的区别

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值