- 1、File类
- 1.1、Java对文件的抽象
- 1.1.1、常用构造器
- 1.1.2、常用属性
- 1.1.3、访问文件属性的方法
- 1.1.4、文件的操作
- 2、文件流
- 2.1、FileInputStream类和FileOutPutStream类
- 2.2、FileReader类和FileWriter类
- 3、[jdk1.8中文api](https://blog.csdn.net/qq_45042462/article/details/114950677)
- Java程序是通过I/O流与数据存储设备(内存、硬盘、光盘、网络等)进行数据交换的。要完成文件内容的读写、网络数据的读取等,都需要通过I/O流。
- 几乎所有的应用程序在完成特定任务时都需要与数据存储设备进行数据交换,I/O就是指应用程序对这些数据存储设备的数据输入和输出。`Java作为一门高级编程语言,也提供了丰富的API来完成对数据的输入和输出。
- Java语言对物理存储介质中的文件和目录进行了抽象,使用java.io.File类带代表存储介质中的文件和目录。也就是说,存储介质的一个文件在Java程序里是用一个File对象来代表。操作File对象就相当于在操作存储介质中对应的文件或目录。
- File类中定义了一系列与操作系统平台无关的方法,用于操作文件和目录。
- publicFile(String pathname);这个构造方法以pathname为路径创建File对象。
- pathname可以是绝对路径,也可以是相对路径。
文件对绝对路径:从磁盘的根目录到该文件的全路径名。 文件的相对路径:相当于指定目录到该文件的路径名。 例如:在Windows系统的c:javaJava学不会,路径下的HelloWorld.txt文件, 它的绝对路径就是c:javaJava学不会HelloWorld.txt;它相对于c:java目录的 路径就是Java学不会HelloWorld.txt。1.1.2、常用属性
- public static final String separator;存储了当前系统的路径分隔符。在Unix、Linux系统上,此常量的值是“/”;在Windows系统上,它的值是“”。如果编写的Java程序要在不同的操作系统上允许,则文件的路径分隔符就应该使用这个属性值来代表。
- File类中针对文件属性的访问提供了以下一些方法。
- public boolean canRead(); //判断文件是否可读
- public boolean canWrite(); //判断文件是否可写
- public boolean exists(); //判断文件是否存在
- public boolean isDirectory(); //判断是否为目录
- public boolean isHidden(); //判断文件是否隐藏
- public long lastModified(); //返回最后修改的时间(毫秒值)
- public long length(); //返回文件以字节为单位的长度
- public String getName(); //获取文件名
- public String getPath(); //获取文件的路径
- public String getParent(); //得到文件的父目录路径名
代码演示
package IO;
import java.io.File;
//用File类显示文件属性信息
public class FileRead01 {
public static void main(String[] args) {
//把存储介质指定的路径中的文件抽象成File类
File file=new File("D:\java\IOtest\javatest.txt");
System.out.println("文件是否存在:"+file.exists());
System.out.println("是文件吗:"+file.isFile());
System.out.println("是目录吗:"+file.isDirectory());
System.out.println("文件名是:"+file.getName());
System.out.println("路径:"+file.getPath());
System.out.println("文件大小:"+file.length());
}
}
运行结果
- File类提供了如下一些常用的文件操作方法:
- public boolean createNewFile(); //创建空白文件
- public boolean delete(); //删除文件如果是目录,必须是空目录才能删除
- public boolean mkdir(); //创建目录
- public boolean mkdirs();//创建目录,包括所有需要但是不存在的父目录
- public String[] list(); //返回此目录中的文件名和目录名的数组
- public File[] listFiles(); //返回此目录中的文件名和目录的File实例数组
- public File[] listFiles(FilenameFilter filter); //返回此目录中满足指定过滤器的文件和目录
- 文件流是指那些专门用于操作数据源中的文件流。文件流主要有FileInputStream、FileOutStream、FileReader、FileWriter这四个类。
- FileInputStream类和FileOutPutStream类是以字节为操作单位的文件输入流和文件输出流。利用这两个类,可以对文件进行对鞋操作(使用完以后要关闭流.close()),中文字符是用两个字节编码的,所以,文本文件的内容需要读取出来时,不建议使用字节流。
- 一般来说,FileInputStream类和FileOutPutStream类用来操作二进制文件比较合适,例如图片、音频、视频等文件。
- FileReader类和FileWriter类是以字符为操作单位的文件输入流和文件输出流。所以用FileReader类和FileWriter类来操作字符文本文件是最适合不过了。



