近日在研究Java,在Java的IO里有点困惑,可能这流那流太多了吧,今日决定好好的把这些流给整理一下,来结束这几天的原地踏步走啊,呵呵,搞了我好几天了,同时也希望高手来指点指点。
Java IO操作主要指的是使用Java进行输入,输出操作,Java所有的操作类都存放在Java.io包中,使用时要导入此包。
在整个Java.io包中最要的就是5个类和一个接口,如下:
类:File,Inputstream,Outputstream,Reader,Writer。
接口:Serializable。
在Java.io包中还有一个类:RandomAccessFile 随机读取类也要注意,他可以随机地读取一个文件指定位置的数据。
因为输入输出除了和键盘打交道外,最重要的就是操作文件,读取文件,把数据存储到文件里,下面先从文件File类说起。
一.File类
1.构造方法:
@1 public File(String pathname);
例如:File f=new File("f://java//hello.txt"); //注意在Java里路径是/,且要写成//,转移字符;
那么现在就可以使用这个f对象了,使用File类的方法来操作这个文件了,这个构造方法是最常用的,还有以下几个构造方法:
@2 public File(File parent,String child) //根据 parent 抽象路径名(一般为目录)和 child 路径名字符串创建一个新 File
实例。
例如:
File f=new File("F://myjava//");
File ff=new File(f,"hello.txt");
那么此时也表示f://java//hello.txt这个文件.
@3 public File(String parent,String child) //这个是把文件路径的目录和文件名分开表示来创建一个File实例
例如 File f=new File("f://myjava","hello.txt");
file: URI 转换为一个抽象路径名来创建一个新的 File
例如 File f=new File(new URL("http://www.qq.com")); //这时候就可以操作远程文件了,但是只能读取,不能写
上面四个就是File的构造方法,创建文件实例后就要操作它,下面就是File类的一些重要方法和常量:
public static final String pathSeparator //表示路径的分隔符,window下是‘;’;
public static final String separator //表示路径的分隔符,window下是‘/’;
public boolean createNewFile() throws IOException //创建一个新的文件,注意此方法可能抛出异常
public boolean delete() //删除一个文件
public boolean exists() //判断一个文件或者目录是否存在
public boolean isFile()//判断是不是文件
public boolean isDirectory()//判断是不是目录
public boolean canRead()//判断文件能不能读
public boolean canWrite()//判断文件能不能写
public int compareTo(File pathname)//比较两个路径是否相同
public long length()//获取文件的长度
public long lastModified()//获取文件最后一次修改的时间
public String[] list()//列出指定目录里的全部内容,只是列出名称
public File[] listFiles()//列出指定目录里的全部内容,并且是文件的路径
public boolean mkdir()//创建一个目录
public boolean renameTo(File dest)//为已有的文件重命名
public String getName()//获取文件名,返回由此抽象路径名表示的文件或目录的名称
public String getParent()//返回此抽象路径名父目录的路径名字符串
public String getPath()//将此抽象路径名转换为一个路径名字符串
实例
import java.io.File;
import java.io.IOException;public class FileClassDemo {
public static void main(String[] args){
File f=new File("F://myjava//test.java"); //用字符串创建一个实例
if(!f.exists()){ //判断这个抽象路径表示的文件是否存在
try{
f.createNewFile(); //如果不存在,则创建这文件
}catch(IOException e){ //创建文件可能抛出IOException异常
e.printStackTrace();
}
}
File dest=new File("F://myjava//welcome.java"); //重名这个文件
f.renameTo(dest);
System.out.println("f.getName():"+f.getName()); //test.java
System.out.println("f.getParent():"+f.getParent()); //f:/myjava System.out.println("f.getPath():"+f.getPath()); //f:/myjava/test.java
System.out.println("f.canRead():"+f.canRead()); //true System.out.println("f.canWrite():"+f.canWrite()); //true
System.out.println("f.length():"+f.length()); //
System.out.println("f.lastModified():"+f.lastModified());//
System.out.println("f.isFile():"+f.isFile()); //true
System.out.println("f.isDirectory():"+f.isDirectory()); //false
f.detele(); //删除这个文件
}}
File类里还有一些其他方法,不在详述。