• 文件操作——IO(代码演示)


    1.认识文件系统

    文件分为狭义上的文件和广义上的文件
    狭义上的文件:
    就是像硬盘这种可以持久化储存的I/O设备,文件夹等等
    广义上的文件:
    操作系统将网卡,键盘等等,都抽象成了文件。方便使用

    1.结构和目录

    文件的结构是一种树形结构来组织的,是N叉树
    目录就是将一个个文件夹组织起来

    2.文件路径

    分为绝对路径和相对路径
    绝对路径
    在这里插入图片描述
    相对路径
    在这里插入图片描述
    相对路径的表示是./IDEA/InteIIiJ IDEA …
    用./来表示相对路径。

    2.IO

    翻译一下就是输入操作和输出操作,是一种流(Stream)
    有两种输入流和输出流。分别问字节流和字符流。
    字节流:
    输入表示 InputStream ,输出表示OutputStream 他们两个都是抽象类,所有要实例化的话要使用已经实现了他们的类
    分别为FileInputStream和FileOutputStream。

    import java.io.*;
    
    //读一个文件 用字节流读文件  打开 读文件 关闭
    public class Demo7 {
        public static void main(String[] args) throws IOException {
            //打开文件
            InputStream inputStream = new FileInputStream("./test.txt");//InputStream是抽象类 不能实例化
            while(true){
                int tmp = inputStream.read();//读文件
                if(tmp == -1){
                    //为-1说明读完了 读文件读出的是字节码
                    break;
                }
                System.out.println(tmp);
            }
        inputStream.close();//文件关闭
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    //写文件 字节流写文件
    public class Demo8 {
        public static void main(String[] args) throws IOException {
            OutputStream outputStream = new FileOutputStream("./test.txt");
            //使用outputStream写文件的时候 打开文件成功后 会把文件原来的内容清空
            outputStream.write(97);
            outputStream.write(98);
            outputStream.write(99);
            outputStream.close();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    记得处理异常

    字符流:
    输入表示 Reader,输出表示Writer,
    使用是也是 FileReader和FileWriter。

    import java.io.FileReader;
    import java.io.IOException;
    import java.io.Reader;
    
    //用字符流读文件
    public class Demo9 {
        public static void main(String[] args) throws IOException {
            Reader reader = new FileReader("./test.txt");
            while(true){
                int n = reader.read();
                if(n == -1){
                    break;
                }
                System.out.println((char)n);
            }
            reader.close();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer;
    
    //字符流 写文件
    public class Demo10 {
        public static void main(String[] args) throws IOException {
            Writer writer = new FileWriter("./test.txt");
            writer.write("哈哈哈");
            writer.close();
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3.存储和硬盘

    存储分为了内存和外存
    文件保存在外存中。
    内存就是内存条,外存是硬盘。
    内存的存储空间<外存的存储空间
    内存的读写速度>外存的读写速度

  • 相关阅读:
    V8中的快慢属性(图文分解更易理解)
    我的OpenAI库发布了!!!
    MySQL数据库-备份
    解决ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘问题
    adb shell命令查看当前屏幕可见最顶层Activity和Fragment及其调用栈
    EXCEL根据某列的数字N,增加N-1行相同的数据
    微信小程序开发---下拉刷新
    Docker容器技术之user-defined网络
    处理服务器返回的utc 时间转正标准时间
    10.1网站编写(Tomcat和servlet基础)
  • 原文地址:https://blog.csdn.net/m0_61761695/article/details/127409597