持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
大家好,我是尚影嫣🌷,一名Java后端程序媛。如果您喜欢我的文章,欢迎点赞➕关注❤️,让我们一起成为更好的我们~🥰
IO
I-in,O-out,对应计算机数据的写入、读取 一切皆字节 计算机中的任何数据都是以二进制的形式存储的,
IO流概述
可以将这种数据传输操作,看做一种数据的流动 , 按照流动的方向分为输入Input和输出Output Java中的IO操作主要指的是 java.io包下的一些常用类的使用. 通过这些常用类对数据进行读取(输入Input) 和 写出(输出Output)
IO流的分类: 按照流的方向来分,可以分为:输入流和输出流. 按照流动的数据类型来分,可以分为:字节流和字符流
字节流:
- 输入流 : InputStream
- 输出流 : OutputStream
字符流:
- 输入流 : Reader
- 输出流 : Writer
一切皆字节:
- 计算机中的任何数据(文本、图片、视频、音乐等)都是以二进制的形式存储的。
- 在数据传输时,也都是以二进制的形式存储的。
- 所有流在传输时,底层都是二进制。
代码示例如下:
public class InputStreamDemo {
//InputStream
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("c://a.txt");
while (true){
byte b = (byte) fis.read();
if(b==-1){
break;
}
System.out.println(b);
}
byte[] bytes = new byte[10];
int len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
len = fis.read(bytes);
System.out.println(new String(bytes,0,len));
fis.close();
}
}
public class DemoFile {
public static void main(String[] args) {
File e = new File("e://");
File[] files = e.listFiles();
listFile(files);
}
public static void listFile(File[] files){
if(files!=null&&files.length>0){
for (File file:files) {
if(file.isFile()){
if(file.getName().endsWith(".avi")){
if(file.length()>100*1024*1024)
System.out.println("找到了一个avi文件"+file.getAbsolutePath());
}
}else {
File[] files2 = file.listFiles();
listFile(files2);
}
}
}
}
}