首页 > 代码库 > java 20 - 7 字节输入流的操作
java 20 - 7 字节输入流的操作
字节输入流操作步骤:
A:创建字节输入流对象
B:调用read()方法读取数据,并把数据显示在控制台
C:释放资源
步骤A、C 略过,说步骤B
读取数据的方式:
A:int read():一次读取一个字节
B:int read(byte[] b):一次读取一个字节数组
要想进行字节输入流的操作,我得先创建一个文件,并用字节输出流输出内容到这个文件里面:
1 //首先我创建一个txt文件,并输出内容2 File file = new File("a.txt");3 4 //用字节输出流输出数据5 FileOutputStream out = new FileOutputStream(file);6 out.write("java IO".getBytes());7 out.close();
读取数据的方式A:int read():一次读取一个字节
int by = fis.read();System.out.println(by);//这里输出的会是j的ASCII码‘106’System.out.println((char) by);//所以要进行类型转换,输出‘j’,因为每次读取一个字节,都会进行转换类型,所以如果是汉字,那么转换结果我们看不懂
因为这个方式只是读取一个字节,所以如果接着写下去,它会输出下一个字节,相当于添加了个next在前面。
直到你读取到内容最后,没有内容可读取了,就会返回“-1”。所以,我们可以使用循环来一次性把里面的内容输出:
int by = 0; while((by = in.read()) != -1){//当返回的是-1时,代表后面没有内容了,就跳出这个循环。System.out.print((char)by);
读取数据的方式B:int read(byte[] b):一次读取一个字节数组
数组的长度一般是1024或者1024的整数倍
这个方法的返回值其实是实际读取的字节个数。同样,这个方法若是返回值为“-1”,则代表后面没有数据
1 byte[] bys = new byte[1024];//1024的整数倍2 int len = 0;//存储读取的实际长度3 while ((len = in.read(bys)) != -1) {4 System.out.print(new String(bys, 0, len));//打印这个数组的所有内容5 }
注意:以上方法为了方便,都是把异常抛出。记得,一定要释放资源
xxx.close();
java 20 - 7 字节输入流的操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。