文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SGZ_06_666666/article/details/72782849
File文件
有两种类可对文件进行操作:
File类:用于管理文件系统的文件和目录。

RandomAccessFile类:提供了随机读写文件的功能。


File:
我们可以通过调用 File 类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的读写权限及是否存在,设置和查询文件的最近修改时间等操作。File实例对象可以用作表示一个文件,也可以用于表示一个目录。通过调用isFile()判断该File实例表示的是一个目录还是文件,当返回值为false时,说明File对象是目录而不是文件。(在JAVA中目录也被当做文件,可通过list()方法列出目录中的文件名。)
每个文件以一个文件路径和文件名称进行表示,在需要访问该文件的时,只需要知道该文件的路径以及文件的全名即可。
/**创建File对象:*/
//创建一个指定文件或目录路径的File对象。(path是路径,则file表示目录。path是文件名,则file表示文件)     
File file= new File(String path); 
//创建一个指定文件目录路径和文件名(或目录)的File对象。
File file= new File(String filePath,String fileName);
//创建一个由File对象和指定文件名表示的File对象。 
File file= new File(File file,String fileName); 
/**三种创建方式的例子依次:*/
     1. File f = new File("d:/hello.txt");
     2. File f = new File("d:/",   "hello.txt");
     3. File f = new File(new File("d:/"),   "hello.txt");
注意:
由于’\’是Java语言中的特殊字符,所以在代码内部书写文件路径时,
例如“d:\test\ Hello.txt”,需要书写成“c:\\test \\Hello.txt”或“c:/test /Hello.txt”。
 
方法:
文件或目录属性:

boolean canRead()      
判断文件是否可读
boolean canWriter()      
判断文件是否可写
boolean exists()            
判断文件是否存在
boolean isFIle()            
判断File对象是否是文件
boolean isDirectory()    
判断File对象是否是目录
boolean isHidden()        
判断是否是隐藏文件
boolean isAbsolutePath()    
判断File对象是否是一个文件或目录的绝对路径
String getAbsolutePath()  
返回文件的绝对路径
String getName()              
返回文件的名字
String getPath()                
返回文件的路径
String getParent()              
返回文件父目录名字。没有返回null。
int length()                        
返回文件长度(以字节为单位)。若为目录则返回0。
long lastModified()            
返回文件最近一次修改的时间(单位毫秒)
long getTotalSpace()        
返回空间总大小
long getFreeSpace()        
返回可用空间大小
 
文件或目录操作:
boolean createNewFile()     
创建文件。如果该文件创建成功,返回true。
如果文件已存在,返回false。如果有错误,如路径找不到等,会抛出IOException。
boolean mkdir()      
创建单层目录
boolean mkdirs()      
创建多层目录(文件夹)
boolean renameTo()      
修改文件名。在修改文件名时不能改变文件路径,如果该路径下已有该文件,则false。
listFile()      
返回当前文件夹下所有的文件对象。File[]
listFile(FileFilter filter)      
返回满足指定过滤器的文件和目录。File[]
String[] list()
返回当前文件夹下所有的文件名和文件夹名称并存放在字符串数组中。(该名称不是绝对路径)String[]。
String[] list(FilenameFilter filter)    
列出目录下的指定文件
delete()  
删除当前文件或文件夹。
如果删除的是文件夹,则该文件夹必须为空。
如果需要删除一个非空的文件夹,则需要首先删除该文件夹内部的每个文件和文件夹,然后才可以删除该文件夹。
File.createTempFile(String prefix,String suffix)    
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。


File类只能对文件进行一些简单的操作,如获取属性,创建,删除,更名等,并不能支持文件内容的读写。要对文件内容进行读写操作,需要通过IO流。


RandomAccessFile随机存取类:
随机访问文件类RandomAccessFile提供随机访问的方法,可以在文件中任意的移动读取位置,使用它的seek()方法来移动文件指针到指定位置,移动的单位是字节。
内部封装了一个数组,通过指针对数组的元素进行操作。
创建RandomAccessFile对象:

//创建随机存取文件,文件名由File参数指定
RandomAccessFile  raf = new  RandomAccessFile(File file,String,mode);
//创建随机存取文件,文件具有指定名称
RandomAccessFile  raf = new  RandomAccessFile(String name,String mode); 

mode: 
      r :  以只读的方式打开    w:以只写的方式打开
      rw:打开以便读取和写入。若文件不存在,则创建。
方法:
write(int b)                     
write(byte[] buf)            
输出数组中的全部字节值
write(byte[] buf, int from, int n)    
输出数组中的从 from 开始的 n 个
read()                          
读取数据。读取完后,再读取,返回 -1
read(byte[] buf)            
根据数组长度,读取一批字节值,放入数组,返回读取并放入数组的字节·,读取完后,再读取,返回-1
seek(int position)        
定位下标到指定位置      
eg:seek(0)把指针移到0位置
int skipBytes(int n)            
跳过输入的n个字节的数据并返回跳过的实际字节数。
long getFilePointer()            
返回此文件的当前位置与到文件开头位置的偏移量。


展开阅读全文

没有更多推荐了,返回首页