12.4文件操作
来源:互联网 发布:淘宝土特产店名 编辑:程序博客网 时间:2024/06/16 08:42
12.4文件操作
一.文件类 File
1.提供方法用来操作文件获取文件信息,
(Java把目录当成一种特殊文件处理)
2.构造方法
PublicFile(String path)://path 文件或目录的名字
PublicFile(String path,String name)
PublicFile(File parent,String chile);
如:File file1=new File(“demo.txt”);//当前文件夹相爱的文件
File file2=new File(“c://demo1.txt”);//绝对路径
File file3=new File(c:/exmple);//exmple是文件还是路径
File file5=new File(“c:/exmple”,”demo.txt”)
{ File file5=new File(“c:/exmple/demo.txt”)}
File file6=new File(file3,”demo.txt”)
3.常用方法
(1)访问对象
public String getName() 返回文件对象名(不包含路径)
public String getPath() 返回相对路径名,包含文件名
public String getAbsolutePath() 返回绝对了路径名,包含文件名
public String getParent()/返回父文件的路径名
public File getParentFile();返回父文件对象
(2)获取文件属性
public longlength() //返回文件的字节长度
public booleanexists() //测试指定的文件是否存在
public longlastModified() //返回文件最后被修改时间
(3)文件操作
publicboolean renameTo(Filedest) //文件重命名
publicboolean delete() 删除空目录
(4)目录操作
publicboolean mkdir () //创建目录,正常建立时返回true
public String[]list() 返回文件中所有文件名字符串
PublicFile[] listFiles();返回指定目录的所有文件对象
public File[] listFiles() //返回目录中的所有文件对象
如:file mynewDir=new Fiel(“newdir”);
mynewDir.mkdir();//当前目录下创建名为newdir的文件;
mynewDir.delete();//删除newdir文件
二.文件过滤器
1.FileFilter接口
packagecom.hbsi.io;
import java.io.*;
public class TestFileFilter {
publicstatic void main(String[] args) {
Filef=new File("c:\\aa");//在文件aa中过滤
MyFileFiltermff=new MyFileFilter("DOC");//规定只要DOC类文件
File[]files=f.listFiles(mff);过滤
for(Filef1:files){
System.out.println(f1.getName());输出符合的文件
}}}
三.随机文件操作
1.RandomAccessFile
RandomAccessFile(Filefile,String mode) ;
RandomAccessFile(String name,String mode);
(mode为r可读,w可写,为rw为可读可写)
如:
File file=new File(“d:\\mydata\\a.txt”);
RandomAccessFile rf=new RandomAccessFile( file,”rw”) ;
RandomAccessFile rfile=newRandomAccessFile(“d:\\lx\\a.txt”,”rw”);
2文件随机读写流的读取指针控制
LonggetFilePointer()—得到当前的文件读取指针
Viodseek(long pos)-把指针从开始移到pos位置
Longlength()—得到文件的长度
Voidsetlength(long newlength);
如
import java.io.*;
public class DemoRandomAccess {
publicstatic void main(String[] args) throws IOException {
Filef=new File("res/example.txt");//创建文件
RandomAccessFileraf=new RandomAccessFile(f,"rw");随机可读可写
raf.writeInt(1234);
raf.writeDouble(1.235);写
raf.seek(0);指针未知指向0
intn=raf.readInt();读取整数类值
doubled=raf.readDouble();读取double类值
System.out.println(n);
System.out.println(d);输出
System.out.println(raf.getFilePointer());
raf.seek(4);
doubled1=raf.readDouble();
System.out.println(d1);
raf.close();
}
}