File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件长度、文件读写权限等,不涉及对文件的读写操作。
一、File类的构造方法有:
File(String filename); //filename为文件名,该文件与当前应用程序在同一目录中
File(String directoryPath,String filename); //directoryPath是文件路径
File(file f,String filename); //f是指定成目录的一个文件
二、文件属性
1.public String getName(); //获取文件的名字
2.public boolean canRead(); //判断文件是否可读
3.public boolean canWrite(); //判断文件是否可写
4.public boolean exits(); //判断文件是否存在
5.public ling length(); //获取文件长度
6.public String getAbsolutePath(); //获取文件的绝对路径
7.public String getParent(); //获取文件的父目录
8.public boolean isFile(); //判断文件是否是一个正常文件而不是目录
9.public boolean isDirectory(); //判断文件是否一个目录
10.public boolean isHidden(); //判断文件是否隐藏文件
11.public logn lastModified(); //文件最后修改的时间(从1990年午夜至文件最后修改时刻的毫秒数)
三、目录
1.创建目录
public boolean mkdir(); //创建目录
2.列出目录中的文件
如果File对象是一个目录,那么该对象可以调用下述方法列出该目录下的文件和子目录:
public String[] list(); //用字符串形式返回
public File[] listFiles(); //用File对象形式返回
列出指定类型的文件:
public String[] list(FilenameFilter obj); //字符串形式目录下指定类型的所有文件
public File[] listFiles(FilenameFilter obj); //用File对象形式返回目录下指定类型的所有文件
其中,FilenameFilter是一个接口,该接口有一个方法:
public boolean accept(File dir,String name); //当向list方法传递一个实现该接口的对象时,dir调用list方法在列出文件时,将调用accept方法检查该文件name是否符合accept方法指定的目录和文件名字要求。
该类是从InputStream中派生出来的简单输入类。
一、构造方法
FileInputStream(String name); //使用给定的文件名创建对象
FileInputStream(File file); //使用File对象创建FileInputStream对象
二、读取文件
1.使用文件输入流读取文件
FileInuputStream istream=new FileInputStream("myfile.dat");
或:
File f=new File("myfile.dat");
FileInputStream istream=new FileInputStream(f);
构造方法可能会产生异常IOException,故为了把一个文件输入流对象与一个文件关联起来,需:
try { FileInputStream ins=new FileInputStream("myfile.dat");}
catch (IOException e){ System.out.println("File read error:"+e);}
2.从输入流中读取字节
int read(); //从输入流中读取单个字节数据(0~255),如到输入流末尾则返回-1
int read(byte b[]); //读多个字节
int read(byte b[],int off,int len);
3.关闭流
Java在程序结束时自动关闭所有打开的流,但显式关闭任何打开的流是一个好习惯。
close();
该类提供了基本的文件写入功能,顺序写。
FileOutputStream(String name); //用给定的文件名创建对象
FileOutputStream(File file); //用File类创建对象
public void write(byte b[]); //写b.length个字节到输出流
public void write(byte b[],int off,int len); //从off开始写len个字节到输出流
分别是Reader类和Writer类的子类。
FileInputStream类使用字节读取文件时不能直接操作Unicode字符,读取汉字(2字节)时可能会出现乱码。
FileReader in=new FileReader("Example20)1.java"); //构造方法
read();
write(String s,int off,int len);
BufferedReader类:
BufferedReader(Reader in);
readLine(); //读取一行