Java IO学习原则:抽象类中定义的抽象方法会根据实例化其子类的不同,也会完成不同的功能。
使用File类来进行文件的操作。
如果要进行所有的文件以及文件内容的开发操作,那么应该使用java.io包完成,而在java,io包里面一共有五个核心类和一个核心接口。
五个核心类:File,InputStream,OutputStream,Reader,Writer
一个核心接口:Serializable
在整个java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不涉及到文件的具体内容。所谓的文件本身指的是文件的创建,删除等操作。
如果要想使用File类,那么首先就需要通过它提供的构造方法定义一个要操作的文件路径:
设置完整路径:public File(String pathname)
设置父路径与子文件路径:public File(File parent,String child)
大部分情况下,使用1设置完整路径,2在Android上使用较多。
范例:操作文件
1.创建文件:public boolean createNewFile()
throws IOException
1.1如果目录不能访问
1.2如果文件重名或者文件名称错误
都会抛出异常
public static void main(String[] args) throws Exception{
File file=new File("e:\\test.txt");
System.out.println(file.createNewFile());
}
创建文件成功,并且为true
image.png image.png
删除文件:public boolean delete();
判断文件是否存在:public boolean exists();
public static void main(String[] args) throws Exception{
File file=new File("e:\\test.txt");
if(file.exists()){//如果文件存在,则删除文件
file.delete();
return;
}//否则创建文件
System.out.println(file.createNewFile());
}
文件存在的时候,执行程序的确删除了,文件不存在的时候,的确创建了。
以上程序已经完成了具体的文件创建与删除的操作,但是此时的程序会存在有两个问题。
在windows系统里面支持的是""路径分隔符
Linux下使用的是"/"路径分隔符。
因此开发项目在Windows上,部署在Linux上时候,写绝对路径,可能会出错,File类中有一个常量public static final String separator;
File file=new File("e:"+File.separator+"test.txt");
如此来分割是最合理的做法。
所以以后一定要注意使用File.seperator分隔符
在进行java.io操作的过程之中,会出现延迟情况,因为现在的问题是Java程序是通过JVM间接调用操作系统的文件处理函数进行的文件处理操作,所以中间会出现延迟情况。
网友评论