目标
1、File类
2、I/O简介:流的概述/流的分类
3、InputStream/OutputStream
FileInputStream/FileOutStream
4、Reader/Writer
FileReader/FileWriter
InputStreamReader/OutputStreamWriter
File类的构造方法:
public File(String path)
如果path是实际存在的路径,则该File对象表示的是目录
如果path是文件名,则该File对象表示的是文件
public File(String path,String name)
path是路径名,name是文件名
public File(File dir,String name)
dir是路径名,name是文件名
File类的部分方法
文件名的处理
String getName( ); //得到一个文件的名称(不包括路径)
String getPath( ); //得到一个文件的路径名
String getAbsolutePath( );//得到一个文件的绝对路径名
String getParent( ); //得到一个文件的上一级目录名
文件属性测试
boolean exists( ); //测试当前File对象所指示的文件是否存在
boolean canWrite( );//测试当前文件是否可写
boolean canRead( );//测试当前文件是否可读
boolean isFile( ); //测试当前文件是否是文件(不是目录)
boolean isDirectory( ); //测试当前文件是否是目录
普通文件信息和工具
long lastModified( ); //得到文件最近一次修改的时间
long length( ); //得到文件的长度,以字节为单位
boolean delete( ); //删除当前文件
目录操作
boolean mkdir( ); //根据当前对象生成一个由该对象指定的路径
String list( ); //列出当前目录下的文件
File使用打印所有文件—递归调用
“`
package com.foot.class02;
import java.io.File;
public class TestFile {
public static void main(String[] args) {
//文件路径 路径写法 C:\\Windows 和代码中有什么区别?
String pathname = new String("C://Windows");
//加载文件
File file = new File(pathname);
list(file);
}
private static void list(File file) {
if(file.isFile() == true) {
//是一个文件,将其名字输出
System.out.println(file.getAbsolutePath() + "--" + file.getName());
} else {
//输出文件路径
System.out.println(file.getPath());
//将文件目录读出
File files[] = file.listFiles();
for (File f : files) {
//递归调用
list(f);
}
}
}
}
“`如果以上程序出现:java.lang.NullPointerException异常,表明文件的访问权限受到了限制。
流的分类
按处理数据单位不同可以分为字节流和字符流
字节流:用于处理字节数据。
字符流:用于处理Unicode字符数据。
J2SDK 所提供的所有流类型位于包java.io内都分别继承自以下四种抽象流类型:
字节输入流:InputStream
字节输出流:OutputStream
字符输入流: Reader
字节输出流:Writer