RE:JAVA学习-文件操作-File
2017-08-26 15:49
344 查看
构造方法:File(String pathname) 通过将给定路径名字字符串转换成抽象路径名来创建一个新File实例
注意: 1.”.”表示:当前目录,在eclipse中当前目录指的是当前类所在项目的根目录(直接指定文件名或目录名,那么该文件或目录 默认是在当前目录中)
2.File.separator:它表示一个受系统支持的目录层级分割(相当于斜线 Linux用”/” windows用”\”)
File file = new File(“.”+File.separator+”demo.txt”);
附:File(File parent,String child)
根据parent抽象路径名和child路径名字字符串创建一个新File实例
作用:
1:访问该文件或目录的属性信息(名字,大小,修改日期等)
2:操作文件或目录(创建,删除)
3:若表示的是目录,可以查看该目录中的子项信息
注意:不能访问一个文件中的数据
相关操作:
boolean isFile() 判断当前File对象所表示的是否是一个文件
long length() 返回File对象所表示的文件所占用的字节量
boolean exists() (文件或目录)是否存在
boolean createNewFile() 此路径表示的文件不存在时,则创建该文件
boolean delete() 注意:删除一个目录的前提条件是该目录必须是一个空目录才可以将其删除
boolean isDirectory() 判断是否为目录
boolean mkdir() 创建目录
boolean mkdirs() mkdirs的会将要创建的目录创建出来的,同时将所有不存在的父目录一同创建出来,而mkdir方法在创建目录时要求父目录必须存在否则创建不成功。
listFiles()方法
4.1 File[] listFiles() 获取一个目录中的所有子项
代码演示:
4.2 重载的listFiles方法(将该目录中所有满足要求的子项获取到)
代码演示:
附:删除给定的文件或目录(先将该目录清空)—使用递归
代码演示:
5.RandomAccessFile 随机访问操作
5.1 构造方法
RandomAccessFile(File file,String mode)
RandomAccessFile(String filename,String mode)
第一个参数是需要访问的文件,而第二个参数则是访问模式—-“rw”:读写模式 “r”:只读模式
5.2 字节数据读写操作
void write(int d) 根据当前指针所在位置处写入一个字节,是将参数int的”低8位”写出
int read() 当前指针位置读取一个byte(8位) 填充到int的低八位, 高24位为0, 返回值范围正数: 0~255, 如果返回-1表示读取到了文件末尾(每次读取后自动移动文件指针, 准备下次读取)
void write(byte[] d) 根据当前指针所在位置处连续写出给定数组中的所有字节
void write(byte[] d,int offset,int len) 根据当前指针所在位置处连续写出给定数组中的部分字节,这个部分是从数组的offset处开始,连续len个字节
int read(byte[] b) 从文件中尝试最多读取给定数组的总长度的字节量,并从给定的字节数组第一个位置开始,将读取到的字节顺序存放至数组中,返回值为实际读取到的字节量
void close()
5.3 文件指针操作
long getFilePointer() 获取当前指针位置
void seek(long pos) 移动指针到指定位置
int skipBytes(int n) 可以尝试跳过输入的 n 个字节以丢弃跳过的字节(返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节)
注意: 1.”.”表示:当前目录,在eclipse中当前目录指的是当前类所在项目的根目录(直接指定文件名或目录名,那么该文件或目录 默认是在当前目录中)
2.File.separator:它表示一个受系统支持的目录层级分割(相当于斜线 Linux用”/” windows用”\”)
File file = new File(“.”+File.separator+”demo.txt”);
附:File(File parent,String child)
根据parent抽象路径名和child路径名字字符串创建一个新File实例
作用:
1:访问该文件或目录的属性信息(名字,大小,修改日期等)
2:操作文件或目录(创建,删除)
3:若表示的是目录,可以查看该目录中的子项信息
注意:不能访问一个文件中的数据
相关操作:
boolean isFile() 判断当前File对象所表示的是否是一个文件
long length() 返回File对象所表示的文件所占用的字节量
boolean exists() (文件或目录)是否存在
boolean createNewFile() 此路径表示的文件不存在时,则创建该文件
boolean delete() 注意:删除一个目录的前提条件是该目录必须是一个空目录才可以将其删除
boolean isDirectory() 判断是否为目录
boolean mkdir() 创建目录
boolean mkdirs() mkdirs的会将要创建的目录创建出来的,同时将所有不存在的父目录一同创建出来,而mkdir方法在创建目录时要求父目录必须存在否则创建不成功。
/** * 创建一个多级目录 * @author adminitartor * */ public class File_mkdirs { public static void main(String[] args) { /* * 在当前目录下创建目录:a/b/c/d/e/f */ File dir = new File( "a"+File.separator+ "b"+File.separator+ "c"+File.separator+ "d"+File.separator+ "e"+File.separator+ "f" ); if(!dir.exists()){ /* * mkdirs的会将要创建的目录创建出来的 * 同时将所有不存在的父目录一同创建出来 * 而mkdir方法在创建目录时要求父目录必须 * 存在否则创建不成功。 */ dir.mkdirs(); System.out.println("目录创建完毕!"); }else{ System.out.println("该目录已存在!"); } } }
listFiles()方法
4.1 File[] listFiles() 获取一个目录中的所有子项
代码演示:
/** * 获取一个目录中的所有子项 * */ public class File_listFiles { public static void main(String[] args) { /* * 查看当前目录中的所有子项 */ File dir = new File("."); /* * boolean isFile() * 判断当前File表示的是否是一个文件 * * boolean isDirectory() * 判断当前File表示的是否为一个目录 */ if(dir.isDirectory()){ //获取该目录中的所有子项 File[] subs = dir.listFiles(); System.out.println("当前目录有"+subs.length+"个子项");//当前目录有7个子项 for(File sub : subs){ if(sub.isFile()){ System.out.print("文件:"); } if(sub.isDirectory()){ System.out.print("目录:"); } System.out.println(sub.getName()); } } } }
4.2 重载的listFiles方法(将该目录中所有满足要求的子项获取到)
代码演示:
/** * File提供了一个重载的listFiles方法,该方法 * 可以指定一个文件过滤器,这样可以将该目录中 * 所有满足过滤器要求的子项获取到。 * */ public class File_listFiles2 { public static void main(String[] args) { File dir = new File("."); /* * 获取当前目录中的所有文件 */ File[] subs = dir.listFiles(new FileFilter(){ public boolean accept(File file) { String name = file.getName(); System.out.println("正在过滤:"+name); return file.isFile(); } }); for(File sub : subs){ System.out.println(sub.getName()); } } }
附:删除给定的文件或目录(先将该目录清空)—使用递归
代码演示:
public class File_delete3 { public static void main(String[] args) { File file=new File("a"); dele(file); System.out.println("删除成功"); } public static void dele(File file){ if(file.exists()){ if(file.delete()){ return ; } else{ File[] files=file.listFiles(); for(File f:files){ // System.out.println(f.getName()); dele(f); } file.delete(); } }else{ System.out.println("文件不存在"); } } }
5.RandomAccessFile 随机访问操作
5.1 构造方法
RandomAccessFile(File file,String mode)
RandomAccessFile(String filename,String mode)
第一个参数是需要访问的文件,而第二个参数则是访问模式—-“rw”:读写模式 “r”:只读模式
5.2 字节数据读写操作
void write(int d) 根据当前指针所在位置处写入一个字节,是将参数int的”低8位”写出
int read() 当前指针位置读取一个byte(8位) 填充到int的低八位, 高24位为0, 返回值范围正数: 0~255, 如果返回-1表示读取到了文件末尾(每次读取后自动移动文件指针, 准备下次读取)
void write(byte[] d) 根据当前指针所在位置处连续写出给定数组中的所有字节
void write(byte[] d,int offset,int len) 根据当前指针所在位置处连续写出给定数组中的部分字节,这个部分是从数组的offset处开始,连续len个字节
int read(byte[] b) 从文件中尝试最多读取给定数组的总长度的字节量,并从给定的字节数组第一个位置开始,将读取到的字节顺序存放至数组中,返回值为实际读取到的字节量
void close()
5.3 文件指针操作
long getFilePointer() 获取当前指针位置
void seek(long pos) 移动指针到指定位置
int skipBytes(int n) 可以尝试跳过输入的 n 个字节以丢弃跳过的字节(返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节)
相关文章推荐
- java学习日记_91:IO流之File文件操作
- 黑马程序员——JAVA学习笔记十一(文件操作File)
- JAVA学习--文件File的操作
- JAVA核心技术学习——流与文件(5.操作文件FILE)
- java.io.File类各种文件操作
- andriod学习——Content的openFileOutput 和 openFileInput操作文件
- java.io.File操作文件的一些常用方法
- java File(dir, delete, move...) 文件操作
- oracle中utl_file包读写文件操作学习
- java对文件(file)操作的各种方法
- IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- 菜鸟学习java文件操作(一)
- IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- java.io.file 各种文件操作
- IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- JAVA文件-基本操作学习笔记
- iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
- java File的基本操作实例(目录及文件的 新建/拷贝/移动)
- 关于 文件操作 【JAVA_IO】的学习与总结。
- java IO操作与字节流(一)File创建,与文件的查找