IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java IO流 -> 正文阅读

[Java知识库]Java IO流

IO概念

IO是input和output的缩写,是对数据的流入和流出的一种抽象 ,java为了我们调用方便,抽象出的用于解决数据流动的类体系

流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。

File类

File类在java.Io包中

File类可以表示文件,也可以表示目录,在程序中一个File类对象可以代 表一个文件或目录

File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。

file类的常用方法:

public static void main(String[] args) {
        File file1 = new File("D:/课件/java");//绝对路径
        System.out.println(file1.canExecute());//是否可执行
        System.out.println(file1.canRead());//是否可读
        System.out.println(file1.canWrite());//是否可写
        System.out.println(file1.exists());//判断文件是否存在
        System.out.println(file1.isFile());//判断是否为文件
        System.out.println(file1.isAbsolute());//是否绝对路径
        System.out.println(file1.isDirectory());//判断是否为目录
        System.out.println(file1.getName());//获取文件名
        try {
            file1.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        File[] fs = file1.listFiles();
        for (File f : fs) {
            if (f.isDirectory()) {//判断是否为目录
                File[] fs2 = f.listFiles();//将目录下的子目录及文件的实例返回到File数组中
                Arrays.stream(fs2).forEach((e) -> {
                    System.out.println(e);
                });
            }
            System.out.println(f);
        }
}

从数据流编码格式上可以分为:

1.字节流:InputStream和OutputStream(可以读写二进制文件,主要处理音频、图片、歌曲、字节流,处理单元为1个字节)

2.字符流:Reader和Writer(主要处理字符或字符串,字符流处理单元为1个字符)

按数据的传输方向可以分为:

1.输入流 2.输出流

字节流中常用类:FileInputStream,FileOutputStream

public static void main(String[] args) {
        FileInputStream in = null;
        FileOutputStream out = null;
        int i = 0;
        try {
            in = new FileInputStream("D:/text.txt");
            out = new FileOutputStream("D:/text1.txt");
            i = 0;
            while ((i = in.read()) != -1) {//读取文件
                out.write(i);
            }
        } catch (FileNotFoundException e) {
            System.out.println("找不到文件");
        } catch (IOException e) {
            System.out.println("无法读写文件");
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

字符流中常用类:FileReader,FileWriter

public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader("D:/demo.txt");
        FileWriter fileWriter = new FileWriter("D:/demo1.txt", true);
        char[] chars = new char[5];
        int size = 0;
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
        String s = null;
        while ((s = bufferedReader.readLine()) != null) {
            bufferedWriter.write(s);
            bufferedWriter.newLine();
        }
        bufferedReader.close();
        bufferedWriter.close();

    }

print(打印流):只做输出没有输入打印流分为字节打印流和字符打印流

PrintWriter(字符打印流):print方法可以打印各种类型数据

对象输入输出流:ObjectOutputStream,ObjectInputStream;用于写入对象信息,读取对象信息一旦将对象信息写入到文件中,就可以做到持久化了

readObject()方法可以直接读取一个对象;writeObject()方法可以直接将对象保存到输出流中

对象序列化:

序列化: 将数据结构或对象转换成二进制字节流的过程,必须要实现 Serializable接口

反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

Serializable接口中没有任何方法。当一个类声明实现Serializable接口后, 表明该类可被序列化

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:04:04  更:2022-04-06 16:07:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:51:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码