IO--字节流

字节流

(1)定义:面向字节的操作,以8位为单位对二进制的数据进行操作,对数据不进行转换,
         这些类都是InputStream和OutputStream的子类。

属性

  1)分类:
	1-流向
		输入流	读取数据
		输出流	写出数据
	2-数据类型
		字节流	
				字节输入流--InputStream
				字节输出流--OutputStream
		字符流
				字符输入流--Reader
				字符输出流--Writer
	注意:
		1-如果我们没有明确说明按照什么分,默认按照数据类型分。
		2-除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
		3-每种基类的子类都是以父类名作为后缀名
		
  2) FileOutputStream写出数据
    构造方法
      FileOutputStream(File file)
	  FileOutputStream(String name)
    常用方法:
      public void write(int b):一次写一个字节
      public void write(byte[] b):一次写一个字节数组
      public void write(byte[] b,int off,int len):一次写一个字节数组的一部分
	 
	1-操作步骤
		1.创建字节输出流对象
		2.调用write()方法
		3.释放资源
		
	2-代码体现:
		FileOutputStream fos = new FileOutputStream("fos.txt");
		
		fos.write("hello".getBytes());
		
		fos.close();
		
	3-要注意的问题?
		1.创建字节输出流对象做了几件事情?
		  调用系统功能去创造文件
		  创建IO流对象
		  把IO流对象指向这个文件
		  
		2.为什么要close()?
		  让流对象变成垃圾,这样就可以被垃圾回收器回收
		  通知系统去释放跟该文件相关的资源
		  
		3.如何实现数据的换行?
		  换行符:
             Window:\r\n
             Linux:\n
             Mac:\r
		
		4-如何实现数据的追加写入?
		  用构造方法带第二个参数是true的情况
		  FileOutputStream/FileWriter​(String fileName, boolean append)
		
  3) FileInputStream读取数据
	1-操作步骤
		1.创建字节输入流对象
		2.调用read()方法
		3.释放资源
		读取数据的方式:          
            int read():一次读取一个字节
		    int read(byte[] bys):一次读取一个字节数组
		
	2-代码体现:
		FileInputStream fis = new FileInputStream("fos.txt");
		
		//方式1
		int by = 0;
		while((by=fis.read())!=-1) {
			System.out.print((char)by);
		}
		
		//方式2
		byte[] bys = new byte[1024];
		int len = 0;
		while((len=fis.read(bys))!=-1) {
			System.out.print(new String(bys,0,len));
		}
		
		fis.close();
  4)字节缓冲区流
	1-BufferedOutputStream--写入数据
	2-BufferedInputStream--读取数据	

IO-字符流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值