注意:I 负责读数据 O负责写数据
流的四大类:
字节流的使用:
件字节输入流:每次读取一个字节文:
弊端:
就算用了for循环可以连续读出,但是只能读出数字和字母
读取中文就会BUG
总结:
件字节输入流:每次读取一个字节文数组:
read()和read( char[ ] buffer) 的返回值的意义不同,注意!!!!
read()返回的是字节,read( char[ ] buffer)返回的是 字节个数
new String(buffer); 是解码操作哦
package com.gao.type_stream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class Demo2 {
public static void main(String[] args) throws Exception {
InputStream i = new FileInputStream("file-io-app\\date2");
//定义一个数组接收字符
byte[] buffer = new byte[3];
System.out.println(i.read(buffer));
String s =new String(buffer);
System.out.println(s);
System.out.println(i.read(buffer));
String s2 =new String(buffer);
System.out.println(s2);
// date2内容:abc1234
//当最后一轮不足3字节时,会报错 需要用换一种api来解决问题
int read = i.read(buffer); //这个指的是本次拿出的字节长度
System.out.println(read);
//String s3 =new String(buffer); // 把这个API换一下
String s3=new String(buffer,0,read);
System.out.println(s3);
}
}
弊端:
就算用了for循环可以连续读出,但是只能读出数字和字母
读取中文就会BUG
文件字节输入流:一次性读入全部字节:
API:readAllBytes(); 是在JDK9才开始的哦