Java的IO流
前言
Java通过IO流获取文件中的数据,并把数据持久化。
Java的IO流体系很庞大,也很灵活;
一、File类
我们想要在Java中读写文件,首先得有1个文件;
1个File类的对象代表1个文件或者1个文件夹,我们通过File类的对象,完成对文件/目录的创建和修改操作;
package IOStream; import java.io.File; public class TestFile { public static void main(String[] args) { try { File file = new File("student/zhanggen.txt"); //0.判断相关API //判断文件是否存在? System.out.println(file.exists()); //判断文件是否为绝对路径? System.out.println(file.isAbsolute()); //判断是否为目录? System.out.println(file.isDirectory()); //判断是否为文件? System.out.println(file.isFile()); //1.创建文件 // f.createNewFile(); //获取当前文件/目录的父级目录(对象) System.out.println(file.getParentFile()); //获取当前文件/目录的名称(字符串) System.out.println(file.getParent()); //2.创建文件夹 //创建文件夹:只能创建1级目录 file.mkdir(); //创建文件夹:创建多级目录 file.mkdirs(); //3.文件/目录重用名 file.renameTo(new File("newfile.txt")); //4.查看相关API //查看文件的大小 System.out.println(file.length()); //查看文件的名字 System.out.println(file.getName()); //5.文件/目录删除 //file.delete(); } catch (Exception e) { e.printStackTrace(); } } }
1.创建1个文件的完整过程
package IOStream; import java.io.File; public class TetsCreateFile { public static void main(String[] args) { File file = new File("java/file/test.txt"); //1.判断父级目录是否存在? File ParentDirectory = new File(file.getParentFile().getAbsolutePath()); if (!ParentDirectory.exists()) { ParentDirectory.mkdirs(); } //2.判断文件是否存在? if (!file.exists()) { try { //3.文件不存在则创建文件! file.createNewFile(); } catch (Exception e) { e.printStackTrace(); } } } }
二、IO流简介
对于程序设计语言而言,输入输出系统(Input/Output)是非常核心的功能。
程序需要从配置文件/数据库中获取数据来内存中处理,也需要把在内存中处理好的数据保存到文件/数据库中。
1.什么是IO
以程序为中心,我们从外部数据源(文件、数据库)中读取外部数据到内存称之为Input;读
以程序为中心,我们处理完内存中数据,持久化到硬盘或者数据称之为Output; 写
以上2个动作我们统称为IO,也就是Input和Output这2个单词的缩写。
2.输入出流流
IO流是输入流和输出流的统称;
输入流:程序通过输入流,把数据输入到内存,进行处理;
输出流:程序通过输出流,把数据输出到硬盘,进行持久化;
3.IO流的种类
在java中我们通过IO流获取和保存数据;
(1)根据IO流的方向,我们把IO流分为输入流和输出流;
(2)根据IO流中传输的数据,分为字节流和字符流;
(3)根据IO流的功能,分为字节流和处理流;
其中节点流就是直接连接到文件的IO流;
处理流是嵌套在其他IO流上,不直接连接文件;
传输字节流:InputStream/OutputStream
传输字符流:Reader/Writer
在Java中以上4类,是所有IO类的抽象父类;我们通过它们的子类完成文件内容的读和写;
三、节点流
四、处理流
1.缓冲流
2.转换流
3.对象流
参考