感觉慕课越来越敷衍了
package com.east.index; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class demo{ public static void main(String[] args) { try { FileInputStream Input = new FileInputStream("bd_logo1.png"); FileOutputStream Output = new FileOutputStream("xg.png"); FileInputStream Input_one = new FileInputStream("demo.txt"); int n = 0; byte[] b = new byte[1050]; // 老师这里为啥是 1050 ? while((n = Input.read(b)) !=-1) { // 这里的 Input.read(b) 有是返回个啥 为啥循环,我只知知道返回-1为没图码了 Output.write(b,0,n); /// 这里我知道是输出; 那么 n又是个啥 这节课 完全就是老师自认为我们懂了,一条过,都不带解释都是啥。 } Input.close(); Output.close(); }catch(FileNotFoundException e) { e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } } }
43
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕小尤
2019-11-21 11:04:18
同学你好,1. byte[] b = new byte[1050] 。理解为创建了一个byte 数组,这个数组的大小为1050,最多可以存 1050 个 字节。同学可以修改byte数组的大小。
2. read(byte[] b)方法,从此输入流中读取一个数据字节。则 read(byte[] b)方法返回值:读下一个数据字节,如果已到达文件末尾,则返回-1。因read(byte[] b)方法不能一次性读取完,所以需要循环读取。使用while循环,当n = Input.read(b)不等于-1,表示没有读到文件末尾,继续读取,直至n = Input.read(b)) == 1读到文件末尾停止。
3.这里的n表示读取的字节长度,write方法解析:
4. f.read(b),是将byte[] b 数组中的数据一个字节,一个字节读取出来。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星