java IO 流介绍(输入流和输出流应用) :
定义 :
IO (Input / Output) : 输入和输出,指的是某个设备环境进行数据的输入和输出,例如 : 键盘的输入 子啊比如显示器就是输出设备,输出图像。
对于java 来说输入输出问题 ,Java将他抽象成流对象来解决。比如: Java是面向对象
抽象成以流的形式。 从某个文件中读取或是获取值的时候,使用Java流来完成这件事。
Eg:
玩游戏的过程中势必有个东西来记录玩家的信息,
以游戏程序为中心,读取文件就是输入;写入文件就是输出。
IO流的分类 :
IO 流在Java 中从输入输出角度分类;
1.输入流
2.输出流
IO 流在Java 中从数据角度的来分类 :
1.字符流 :文本,我们能读懂的都可以认为是字符流。
2.字节流 :二进制的数据,这种数据我们读不懂文件,一般是用文本打开看不懂的。
File类–文件类 位于Java io
我们操作系统中所有的设备的体现都是文件,(包含文件夹),Java对文件做了抽象
File 构造器
File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。
示例代码 :
public static void main(String[] args) {
/**
* 文件类型的创建
*/
// 如果来指定文件 的路径需要使用 \\
File file = new File("d:\\demo.txt");
// /是另外的表现形式
File files = new File("d:/demo.txt");
// 路径打印出来了
System.out.println(file);
System.out.println("==============");
//创建文件的第二种方式 ; 第一个写的是 文件的路径第二个是文件名
File file2 = new File("d:/", "demo.txt");
System.out.println(file2);
System.out.println("++++++++++++++++");
// 在Java中都抽象为file 类 ;
// 创建一个文件夹的file 对象
/*
* 创建文件的第三种方式,先写路径
*/
File file3 = new File("d:/");
File file4 = new File(file3, "demo.txt");
System.out.println(file4);
}
文件的创建 api
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
创建目录:
boolean mkdir()
创建此抽象路径名指定的目录。
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
代码示例 :
public static void main(String[] args) throws IOException {
// 创建file对象
// d:/a.txt 是绝对路径
File file = new File("d:/a.txt");
// 创建文件
// 文件是否成功 : 如果当前目录下文件不存在的情况下,是可以创建的。 如果文件已经存在,则会创建失败,
// 就是说目录中没有那个文件,同时会爆出编译器的异常 ,必须处理,
// 考虑为什么会出现异常?因为流 ,在你创建文件时会有人来使用
boolean file2 = file.createNewFile();
System.out.println(file2);
}
创建文件夹
public static void main(String[] args) throws IOException {
/*
* 调用创建文件的方法
*/
createDir();
}
/**
* 创建文件
*
* @throws IOException
*/
public static void FileDemos() throws IOException {
// 使用绝对路径来创建file对象
// d:/a.txt 是绝对路径
File file = new File("d:/a.txt");
// 创建文件
// 文件是否成功 : 如果当前目录下文件不存在的情况下,是可以创建的。 如果文件已经存在,则会创建失败,
// 就是说目录中没有那个文件,同时会爆出编译器的异常 ,必须处理,
// 考虑为什么会出现异常?因为流 ,在你创建文件时会有人来使用
boolean file2 = file.createNewFile();
System.out.println(file2);
/*
* 相对路径 来创建文件 相对于项目的根路径 根目录下的 使用相对路径来创建文件,没有指代路径,他会在ecplice工程中所创建文件就直接在当前的工程目录下
*/
File file3 = new File("b.txt");
boolean file4 = file3.createNewFile();
System.out.println("b文件的创建是否成功" + file4);
/*
* 如果想在src下创建文件
*/
// 可以根据相对路径来
File files = new File("src/com/zhiyou/c.txt");
boolean filess = files.createNewFile();
System.out.println("c文件的创建是否成功" + filess);
System.out.println("-*****-*------**-*-*-*-**");
}
/*
* 创建文件夹 单级目录
*/
public static void createDir() throws IOException {
/*
* File ss=new File("a");
* boolean b = ss.mkdir(); System.out.println("创建文件夹"+b);
*/
/**
* 单级目录创建,如果是多级的,前面的目录必须存在,a目录存在才能创建成功
*/
/*
* File ss=new File("a/b");
* boolean b = ss.mkdir();
* System.out.println("创建文件夹"+b);
*/
/**
* 直接创建多级目录
*/
File ss=new File("d/e/f");
boolean b = ss.mkdirs();
System.out.println("创建文件夹"+b);
}