以reader或者writer结尾的都叫做字符流
以stream结尾的都叫做字节流
字符流只能读取纯文本,
字节流可以读取文本,图片,视频,音频。
读一个字节一个字节的读
package IO;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
FileInputStream fileInputStream=null;
try {
fileInputStream= new FileInputStream("C:\\Users\\86155\\Desktop\\新建文本文档.txt");
// int read1 = fileInputStream.read();
// int read2 = fileInputStream.read();
// int read3 = fileInputStream.read();
// int read4 = fileInputStream.read();
// int read5 = fileInputStream.read();
// int read6 = fileInputStream.read();
// int read7 = fileInputStream.read();
// int read8 = fileInputStream.read();
// System.out.println(read1);
// System.out.println(read2);
// System.out.println(read3);
// System.out.println(read4);
// System.out.println(read5);
// System.out.println(read6);
// System.out.println(read7);
// System.out.println(read8);
// while (true){
// int read = fileInputStream.read();
// System.out.println(read);
// if(read==-1){
// break;
// }
// }
int i=0;
while ((i= fileInputStream.read())!=-1){
System.out.println(i);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fileInputStream!=null){
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
规定一次性读取得字节数
实际上是我们定义了一个数组,并初始化了这个数组的容量,每次从中读取的内容放到这个数组中,由于我们初始化了容量,所以每次最多只能读取那个值,不可能再多了,之后将数组转化为字符串一次性输出。
package IO;
import java.io.FileInputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
FileInputStream fileInputStream=null;
try {
byte[] bytes= new byte[4];
fileInputStream=new FileInputStream("src/IO/temp");
// int read = fileInputStream.read(bytes);
// System.out.println(read);
// System.out.println(new String(bytes));
// System.out.println(new String(bytes,0,read));
//
// int read1 = fileInputStream.read(bytes);
// System.out.println(read1);
// System.out.println(new String(bytes));
// System.out.println(new String(bytes,0,read1));
//
// int read2 = fileInputStream.read(bytes);
// System.out.println(read2);
// System.out.println(new String(bytes));
// if(read2!=-1){
// System.out.println(new String(bytes,0,read2));
// }
int read=0;
while ((read=fileInputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0,read));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fileInputStream!=null){
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}