java IO流之辅助流式部分 File类
程序员文章站
2024-03-04 23:12:00
...
什么是流?
流是一组有序的数据序列,将数据从一个地方带到另一个地方。
流是一维的,流是单向的,对应的操作就是单向读取和单向写入。
根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。
java IO 流可以概括为“两个对应,一个桥梁”:
两个对应指
字节流和字符流的对应,输入流和输出流的对应;
一个桥梁是指字节流到字符流的桥梁;
分别由以下4个抽象类来表示流:
InputStream 、 OutputStream 、Reader 、 Writer;**
java中IO主要包含3个部分
1、流式部分–IO流的主体部分
2、非流式部分–辅助流式部分,如File类
3、文件读取部分和安全相关的类;
下面是我总结的File类:
File类
File类是文件和目录路径名的抽象形式,它提供了与平台无关的方法来对磁盘上的文件或目录进行操作;
使用File类可以获取文件本身的一些信息,例如文件所在的目录、文件长度、文件读写权限等;
java中 File类是java.io包中唯一代表磁向文件写入信息的功能盘文件本身的对象。
File类的常用方法:
方法名称 | 方法说明 |
---|---|
String getPath() | 获取此File类构造方法中的路径 |
String getAbsolutePath() | 获取文件或文件夹绝对路径 |
String getName() | 获取文件名或文件夹名字 |
boolean isFile() | 是否是文件 |
boolean exists() | 是否存在此文件或目录 |
boolean isDirectory() | 是否是目录 |
boolean canRead() | 是否可读 |
boolean canWrite() | 是否可写 |
boolean canExecute() | 是否可执行 |
long length() | 文件字节大小 |
boolean createNewFile() | 创建文件 |
boolean delete() | 删除文件或文件夹,如果删除的是目录,当前目录必须为空才能删除成功; |
boolean mkdir() | 创建当前File对象表示的目录 |
boolean mkdirs() | 建当前File对象表示的目录,并在必要时将不存在的父目录也创建出来; |
String[] list() | 返回此文件夹下所有的文件及文件夹名称 |
File[] listFiles() | 返回此文件夹下所有的文件及文件夹File对象 |
代码演示:
public static void main(String[] args) {
File f =new File("D:/sss");
//获取此File类构造方法中的路径
System.out.println("getPath():"+f.getPath());
//获取文件或文件夹绝对路径
System.out.println("getAbsolutePath():"+f.getAbsolutePath());
//获取文件名或文件夹名字
System.out.println("getName():"+f.getName());
//是否是文件
System.out.println("isFile():"+f.isFile());
//是否 存在此文件或目录
System.out.println("exists():"+f.exists());
//是否是目录
System.out.println( "isDirectory():"+f.isDirectory());
//是否可读
System.out.println("canRead():"+f.canRead());
//是否可写
System.out.println("canWrite():"+f.canWrite());
//是否可执行
System.out.println("canExecute():"+f.canExecute());
// //新建文件
// try {
//
// System.out.println("createNewFile():"+f.createNewFile());
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//新建文件夹
// System.out.println("mkdir:"+f.mkdir());
// //新建文件夹及不存在的父文件夹
// System.out.println("mkdirs:"+f.mkdirs());
//删除文件或文件夹
// System.out.println("delete:"+f.delete());
//当前f对象所代表目录里所有的文化及文件夹名称
// String[] FileName = f.list();
//
// for(String name : FileName) {
// System.out.println(name);
// }
}
程序结果:
**
练习题:
1、使用File类按照给定文件夹,查询出此文件夹下所有文件名称!
代码如下:
static int count =0;//记录文件名与目录总个数;
public static void main(String[] args) {
File f =new File("D:/sss");
fname(f);
System.out.println(count);
}
//不固定层数的文件夹中文件名称的获取
public static void fname(File f) {
File[] files =f.listFiles();
for(File s : files) {
count++;
System.out.println(s.getName());
if(s.isDirectory()) {//判断是否是目录
fname(s);
}
}
}
程序结果:
2、//查询给定路径下所有目录
public static void main(String[] args) {
File f=new File("D:"+File.separator); //给出查询路径
String str[] =f.list(); //创建数组接收
for(int i=0;i<str.length;i++){ //遍历
System.out.println(str[i]); //打印输出
}
}
程序结果:
上一篇: Java中泛型的用法总结