基于字节流的读写操作IO

开篇

	基于对于IO操作API的参数理解不透彻,进行对IO中的相关参数进行记录,并通过查询各种资料,按照自己的理解输出记录如下:

一 : OutPutStream(写文件)


		    private final static String FILE_PATH = "E:/abc.txt";

			File file = new File(FILE_PATH);
            //写入,wirte
            OutputStream os = new FileOutputStream(file);
            String s = "好好学习\r\n,天天向上";//在Windows\r\n是换行符
            os.write(s.getBytes());
            os.close();


二 : InputStream(读文件)


		private final static String FILE_PATH = "E:/abc.txt";
		 /**is.read(byte[] b,int off,int off)
         * 第一个参数是存放即将读出来的数据的字节数组。简称:数组b
         * 第二个参数是偏移量,这里指将读出的字节插入到数组b的指定下标位置的偏移
         * 量
         * 
         * 第三个参数是要读取的最大长度。这个是指每一次读取在数组b中最多写入几个字节		  	
         * 
		 *
	     * 如下面 off 和 len赋值后, 由于偏移量off为9每次读取数据后将字节从数组b下标为9
	     * 的 位置插入,因为len为2,所以每一次缓冲区最多只读入2个字节
	     *
         */
        File file = new File(FILE_PATH);
        InputStream is = new FileInputStream(file);
        byte[] b = new byte[1024];//read中的参数第一个需要缓冲区,作为每次读多少.此处是对于 字节流的操作
        int off = 9;//数组位置偏移量(从哪里开始插入数据)
        int len = 2;//读取的最大字节数

        while (is.read(b, off, len) != -1) {
            System.out.write(b, off, len);
        }

        is.close();
        

2.1:为避免上述参数设置出现重复读,优化为下面代码:


		File file = new File(FILE_PATH);
        InputStream is = new FileInputStream(file);
        byte[] b = new byte[10];//read中的参数第一个需要缓冲区,作为每次读多少.此处是对于 字节流的操作
        int off = 0;//数组位置偏移量(从哪里开始插入数据)
        int len;//读取的最大字节数

        while ((len = is.read(b)) != -1) {
            System.out.write(b, off, len);
        }

        is.close();




总结

参数:
	b - 存储读取数据的缓冲区。
	off - 数据的起始偏移量。
	len - 读取的最大字节数。 
	返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值