(4)File的操作

来源:互联网 发布:mit公开课 矩阵理论 编辑:程序博客网 时间:2024/05/29 13:04
 

09,01

课堂笔记:

12.4文件操作

1、对于目录,Java把它当做一种特殊的文件,包括名称、所在路径、读写性、长度等,进而可以进行创建目录、创建临时文件、改变文件名、删除文件、列出一个目录中所有的文件或某个模式相匹配的文件等操作。

       构造方法:

       public File(String path);可以是绝对路径,也可以是相对路径。

       public File(String path,String name);文件名

                     磁盘上文件所在的父目录

       public File(File Parent,String chile);文件名

eg:

       File f1=new File(“demo.txt”);

       File f2=new File(“c:\\aa\\demo.txt”);

File f3=new File(“c:\\aa”,”demo.txt”);

File f4=new File(“c:\\aa”);

File f5=new File(f4,“demo.txt”);

2、separator:平台相关的目录分隔符。

public static final char separatorChar;  

       public static String char separator;      

3、常用方法:

       (1)public String getName();     返回文件对象名,不包含路径名。

       (2)public String getPath();              返回相对路径名,包含文件名。

       (3)public String getAbsolutePath();         返回绝对路径名,包含文件名。

       (4)public String getParent();            返回父文件对象的路径名。

       (5)public File getParentFile();          返回父文件对象。

4、获得文件属性:

       (1)public long length();            返回指定文件的字节长度。

       (2)public Boolean exists();       测试指定的文件是否存在。

       (3)public long lastModified();          返回指定文件最后被修改的时间。

5、文件操作:

       (1)public Boolean renameTo(Filedest);            文件重命名。

       (2)public Boolean delete();              删除空目录。

6、目录操作

       (1)public Boolean mkdir();       创建指定目录,正常建立时返回true。

       (2)public String[] list();           返回目录中的所有文件名字符串。

       (3)public File[] listFiles();        返回指定目录中的所有文件对象。

isFile();   判断是文件吗(文件不存在时返回false)

isDirectory();         判断是目录吗

exists();   判断是否存在

mkdir();  创建目录结构

mkdirs();        创建多级目录

delete();          删除文件

list();              返回是一个字符数组。显示文件夹下的所有文件

insert();          插入

7、递归:

分析:方法listDir()可以显示当前文件夹下的文件,如果有子文件夹,则需使用递归调用。

注意:

(1)一定要限定条件,否则内存溢出。

(2)使用递归时,调用次数不要过多,否则也会出现内存溢出。

例子:

public void listDir(File dir,int level){

       System.out.println(getLevel(level)+dir.getName());

       level++;

       File[] files = dir.listFiles();

       for(int x =0; x<files.length; x++){

              if(files[x].isDirectory())//如果遍历到的是目录。

                     listDir(files[x],level);//递归。

              else

                     System.out.println(getLevel(level)+files[x].getName());

       }

}

 

8、随机文件操作:

       RandomAccessFile类可以对文件进行随机读写操作。

       特点:

(1)       对一个文件可以同时进行既读又写的操作。

(2)       可以在文件中指定的任意读取数据或写入数据。

随机文件操作就是对文件的访问。

构造方法—该对象只能对文件进行操作

RandomAccessFile(File file,String mode) ;

RandomAccessFile(String name,String mode);

 

读写数据的常用方法:

(1)读、写基本数据类型: readInt()、writeInt(int n)等;

(2)读、写UTF字符串:  readUTF()、writeUTF(String str);

(3)读取文件中的一行: readLine();

9、文件随机读写流的读取指针控制:

(1)long getFilePointer() ---得到当前的文件读取指针。

(2)void seek(long pos) ---把指针从开始移动到pos位置。

(3)long length() ---得到文件的长度(有多少个字节) 。

(4)void setLength(long newLength)

10、r:只读;rw:可读可写

11、补充———文件过滤器

(1)FileFilter接口:路径用于抽象名的过滤器。此接口的实例可传递给 File 类的 listFiles(FileFilter) 方法。

(2)成员方法: boolean accept(File pathname)
(3)测试指定抽象路径名是否应该包含在某个路径名列表中。

(4)FilenameFilter接口:实现此接口的类实例可用于过滤器文件名。Abstract Window Toolkit 的文件对话框组件使用这些实例过滤 File 类的 list 方法中的目录清单。

(5)成员方法:boolean accept(File dir,String name)
测试指定文件是否应该包含在某一文件列表中。

今天的感受:

哎、、、今天真的很想叹气。今天是感觉最累的一天,上午听课的时候感觉有点困啊,但还是坚持下来了,听得有点迷糊啊,当时是懂了点,但是中午回宿舍睡了一觉,下午坐在班里写老师留的作业,墨迹了一下午,就是写不对,很郁闷啊。直到晚上,老师问我写完了吗,我说没呢,感觉好丢脸昂。感觉自己真的和别人差的很多,有的东西其实还是挺不理解的。今天我深刻认识到了,还得好好学啊。不学是真不会啊!今天通过别人给我讲解,还是按时完成了作业。感觉今天欠缺的还是以前学的知识,比如随机的那个作业,就不是很会。哎、、、我只能说,认真淆习吧!!

 

原创粉丝点击