File类型与随机读写

一、File文件类型:

1.作用:对文件系统上的文件或目录进行查看操作等。只能
                  创建,删除文件(目录)或者查看其属性,但是不能修改文件的内容。
2.构造器:
1) File(String pathname):   
  pathname:参数为一个路径 ,指定文件或目录的路径;
(此路径硬盘不一定存在)
  此构造器的相对位置是在项目名这个文件夹下.     
2) File(String parentName,String childName) 
    根据 parent 路径名字符串和 child 路径名字符串
   创建一个新 File 实例。
3.文件的过滤接口
概念:文件的过滤接口FileFilter,里提供了一个
方法:accept(File file),可以对文件进行过滤。
File file=new File(".");//表示所在的当前目录。--当前工程名下的文件及目录。
FileFilter filter=new FileFilter(){
/*
*  true:保留我们所需要的文件名
*  false:不保留的文件
*  回调:内部逻辑调用此方法
*/
public boolean accept(File file){
return file.getName().startsWith(".");
}
};
File[] subs=file.listFiles(filter);//
if(subs!=null&&subs.length>0){
for(File s:subs){
System.out.println(s.getName());
}
}
  4.路径
1)文件操作系统的路径分隔符不一样。
如:window下的  \
    linux下的  / 
    File.separator:常量,会根据不同操作,系统返回不同分隔符。

        2) 相对路径:  相对于某一个目录来说的。    
     .  :表示所在的当前目录,即是当前工程名下的文件及目录
     .. :表示返回上一层目录
3) 绝对路径:(不建议使用)
           以根目录为参照物的,也就是需要从根目录写起。
           windows:   c:\a\a.txt
            linux:     /home/a.txt
   5.方法
1)exists():判断指定路径在硬盘上是否存在;
2)listFiles():返回此目录下的所有文件和目录;--里面可以有filter参数
3)createNewFile:creanteNewFile():创建文件;
其作用: 创建时,不一定成功。当这个要创建的
* 文件的父目录不存在时,创建失败。
* 所以这个方法会抛出异常。
4)isFile():判断指定的file是不是文件;
5)mkdir():创建文件夹的作用;会创建一层目录
6) mkdirs():会创建多层目录;
7)delete():文件删除;
--当构造器指定的路径是单层时:
  如果是文件,会直接删除。
  如果是目录,目录下为空,可以直接删除;
      目录不为空,删除失败;
  --当构造器指定的路径是多层时:
  最后一层是文件,只会删除此文件
  最后一层是目录,
          目录为空时,只会删除之后一层;
          目录不为空时,删除失败;
删除逻辑:先删最里层,里层删完之后,才能删上一层。        
8)getName():当前文件名字。

二、随机读写文件类型

1.RandomAccessFile(File pathName,String mode):
file:要指定一个文件的路径或者文件名;
mode:'r'/'rw';
其作用是:对文件的内容进行修改(读,写)操作。
2.构造器:
  RandomAccessFile(File file,String mode)
  RandomAccessFile(String filepath,String mode)
3.  常用方法:
1) int read():
    读取一个字节,放入返回值的低八位上。返回值为int类型
2)write(int num):
     将参数num的二进制的低八位写出。
其他方法:
   1 )write(byte[] bytes)
   2)write(byte[] bytes,int startIndex,int length):
对文件操作时,底层是存在指针的。
1)getFilePointer():获取文件指针的位置。
  2)seek(int index):将指针调到某一位置。   
  3)read(byte[] bytes):将读到的字节(指的是之前写进文件里的内容)存入字节数组中,返回值为读取
       的有效字节个数。当返回-1时,说明读到文件 末尾了。
  4)write(byte[] by):将字节数组里的内容写进文件中。
其中涉及到的方法:
str.getBytes("utf-8"):将字符串按照默认字符集转成相应的字节数组。
String str1 = new String(by,"gbk"):by是字节数组,按照gbk编码编译出来。

转换成相应的字符串。





猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80023703