(1)IO(输入/输出)是比较抽象的,看不到明显的运行效果,但输入和输出是所有程序都必需的部分。使用输入机制,允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据、来自网络的数据)、用户输入数据;使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中和网络其他设备中。
(2)Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入流、输出流两种IO流,每种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。除此之外Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流,其中节点流用于和底层的物理存储节点直接关联(不同的物理节点获取节点流的方式可能存在一定的差异),但程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源。
1、File类
(1)File类是java.io包下代表与平台无关的文件和目录的类。在程序中操作文件和目录,都可以通过File类来完成。需要注意的是,不管是文件还是目录都是使用File来操 作的,File能新建、删除、重命名文件和目录,但是File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
public class Demo1 {
public static void main(String[] args) throws IOException{
// windows的路径 D:\目录\目录\ 由于\为转义字符 应该写为 D:\\目录\\目录\\
// linux或者unix的路径为 /Home/.....
// 在Java支持将/当作平台无关的分隔符。
System.out.println("与系统有关的路径分隔符(String)‐‐>" + File.pathSeparator);
System.out.println("与系统有关的路径分隔符(char)‐‐>" + File.pathSeparatorChar);
System.out.println("与系统有关的默认名称分隔符(String)‐‐>" + File.separator);
System.out.println("与系统有关的默认名称分隔符(char)‐‐>" + File.separatorChar);
// 访问文件名相关方法
File file = new File("F:/Java/");
// File file = new File("F:/Java/ HelloWorld");
System.out.println("文件(目录)名称:" + file.getName());
System.out.println("文件(目录)路径:" + file.getPath());
System.out.println("文件(目录)绝对路径:" + file.getAbsolutePath());
System.out.println("文件(目录)的父目录:" + file.getParent());
if (file.isDirectory()) {
String[] strings = file.list();// 获取子文件和子目录
System.out.println("当前目录下的子文件和子目录");
for (String string : strings) {
System.out.print(string+" , ");
}
}
//创建目录
System.out.println("-------创建目录-----------");
File fileDir = new File("E:/ABC/a");
if (!fileDir.exists() || !file.isDirectory()) {
System.out.println(fileDir.mkdir());
}
// 创建文件
System.out.println("‐‐‐‐‐‐‐创建文件‐‐‐‐‐‐‐‐‐‐‐");
File file2 = new File("E:/技术文献/");
System.out.println("文件是否存在" + file2.exists());
System.out.println(file2.createNewFile());
// 读写执行
System.out.println("是否可写:" + file2.canWrite());
System.out.println("是否可读:" + file2.canRead());
System.out.println("是否可执行:" + file2.canExecute());
System.out.println("是否是目录:" + file2.isDirectory());
System.out.println("是否可文件:" + file2.isFile());
System.out.println("是否绝对路径:" + file2.isAbsolute());
System.out.println("是否隐藏:" + file2.isHidden());
// ‐‐‐‐创建一个文件
System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
File file3 = new File("F:/Java/ HelloWorld.java");
System.out.println("创建文件:" + file3.createNewFile());
System.out.println("文件存在:" + file3.exists());
System.out.println("删除文件:" + file3.delete());
System.out.println("文件存在:" + file3.exists());
System.out.println("创建文件:" + file3.createNewFile());
System.out.println("文件大小:" + file3.length());
System.out.println("文件后修改时间:" + file3.lastModified());
file3.renameTo(new File("F:/Java/ HelloWorlds.java"));// 重命名
System.out.println("‐‐‐‐‐‐‐‐deleteOnExit‐‐‐‐‐‐‐‐‐‐‐‐");
File file4 = new File("F:/Java/ HelloWorlds.java");
System.out.println("创建文件file4:" + file4.createNewFile());
file4.deleteOnExit();//程序退出时删除文件
}
}