1,IO流的介绍
IO流用来处理设备之间的数据传输;Java对数据的操作是通过流的方式;Java用于操作流的对象都在IO包中;流按操作数据分为两种:字节流与字符流;流按流向分为:输入流和输出流。
字节流的抽象基类:InputStream,OutputStream。
字符流的抽象基类:Reader,Writer。
2,File类和文件管理
文件:一组相关信息的集合。
目录(文件夹):一种特殊的文件,用以存放文件和其他目录。
路径:从盘符经过各级目录到文件的目录顺序。
File类中的分隔符:
static String separator:与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。即 \
static String pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串。即 ;
File类常用构造函数 | |
构造方法 | 说明 |
public File(String fileOrPath) | 创建一个File对象,指向path所表示的文件或者目录,如File d = new File(“d:\\javawork”); |
public File(String path,String file) | 创建一个File对象,指向path目录下的file文件; |
public File(File path,String file) | 创建一个File对象,指向path目录下的file文件,如File f = new File(d,”t.txt”); |
注意:创建一个File对象,不会影响到真实的文件系统,只是在对象与真实的文件或目录之间建立了关联。
File类常用方法 | |
方法 | 说明 |
public Boolean canRead() | 测试File对象关联文件是否可读 |
public Boolean canWrite() | 测试File对象关联文件是否可写 |
public Boolean exists() | 测试File对象关联文件(目录)是否存在 |
public Boolean isDirectory() | 测试File对象是否对应了磁盘目录 |
public Boolean isFile() | 测试File对象是否对应了磁盘文件 |
public String getParent() | 返回绝对路径中的父目录。 |
public String getName() | 获取文件的名字 |
public String getPath() | 获取文件的路径 |
public File getAbsoluteFile() | 返回此抽象路径名的绝对路径名形式。 |
public String getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串。 |
public long lastModified | 返回文件最后被修改的时间(与1970年1月1日00:00:00GMT的时间差) |
public Boolean setLastModified(long time) | 设置文件(目录)最后修改时间 |
public long length() | 返回文件的长度(bytes) |
public String[] list() | 如果File对象指向目录,返回该目录下所有文件名的列表 |
public Boolean mkdir() | 建立一个目录 |
public Boolean mkdirs() | 建议一个目录。如果该目录的父目录不存在,也创建它 |
public Boolean renameTo(File) | 更改文件名,新文件名为参数所指定 |
public Boolean delete() | 删除文件或目录 |
public Boolean createNewFile()throws IOException | 自动创建一个新的空文件(如果对象指向的文件不存在) |
public File[] listFiles | 返回一个文件&路径名数组,表示文件对象所指目录中的文件或目录,对象是非目录时为null |
特殊:public Boolean renameTo(File dest) | 重新命名此抽象路径名表示的文件。 |
运行示例:创建磁盘文件d:\file\try.txt
package day18;
import java.io.*;
public class CreateFile {
File path;
File file;
CreateFile(String dir,String name)throws IOException{
path = new File(dir);//将path与目录建立联系
file = new File(path,name);//将file与文件建立联系
path.mkdirs();//创建路径
file.createNewFile();//建立文件
}
public static void main(String[] args) throws IOException {
new CreateFile("d:\\file","try.txt");
System.out.println("It's OK.");
}
}
运行示例:显示一个文件的各个属性
import java.io.File;
public class FileDemo {
public static void main(String[] args){
File file = new File("d:"+File.separator+"file","demo.txt");
sop("exists----"+file.exists());
sop("name----"+file.getName());
sop("path----"+file.getPath());
sop("absolutepath----"+file.getAbsolutePath());
sop("parent----"+file.getParent());//该方法返回的是绝对路径中的父目录。
//如果获取的是相对路径,返回null。
//如果相对路径中有上一级目录,那么该目录就是返回结果。
sop("length----"+file.length());
sop("lastModeified----"+file.lastModified());
sop("是否是一个目录:"+file.isDirectory()+"----"+"是否是一个文件:"+file.isFile());
}
public static void sop(Object o){
System.out.println(o);
}
}
运行结果:
exists----true
name----demo.txt
path----d:\file\demo.txt
absolutepath----d:\file\demo.txt
parent----d:\file
length----31
lastModeified----1379584426913
是否是一个目录:false----是否是一个文件:true