Java中的IO流(三)
上一篇《Java中的IO流(二)》把学习Java的字符流以及转换流作了一下记录,从本篇开始将把IO流中对文件或文件夹操作的对象File类的学习进行一下记录。
一,File类的构造函数及字段
File类是将文件或文件夹封装成对象的类;方便对文件或文件夹的属性进行操作;File对象可以作为参数传递给流的构造函数。
File类的构造函数重载了四个版本,这四个版本可以将已存在或不存在的文件或文件夹封装成为File类的对象;
private static void file_demo1() throws URISyntaxException {
// 接收一个String路径参数通过将字符串路径名转换为抽象路径名来创建一个File实例
File file1 = new File("C:\\");
// 接收一个String类型的父路径和一个String类型的子路径来创建一个File实例
File file2 = new File("C:\\", "filepath");
// 通过接收一个File类型的父路径和一个String类型的子路径来创建一个File实例
File file3 = new File(file1, "filepath2");
URI url = new URI("");
//接收一个URI类型的路径来创建一个File实例
File file4 = new File(url);
}
private static void file_demo2() {
//在Unix系统上引值为“/”;在Windows上此值为“\\”,返回String
System.out.println(File.separator);
//在Unix系统上引值为“/”;在Windows上此值为“\\”,返回char
System.out.println(File.separatorChar);
//在Unix系统上引值为“:”;在Windows上此值为“;”,返回String,例如用在环境变量的分隔上
System.out.println(File.pathSeparator);
//在Unix系统上引值为“:”;在Windows上此值为“;”,返回char,例如用在环境变量的分隔上
System.out.println(File.pathSeparatorChar);
}
二,File类的常用功能——获取
1,获取文件名称
2,获取文件路径
3,获取文件大小
4,获取文件修改时间
1 private static void file_demo3() {
2 File file = new File("demo.txt");
String fileName = file.getName();//文件名
String filePath = file.getPath();//相对路径
String fileAbsolutePath = file.getAbsolutePath();//绝对路径
long len = file.length();//文件大小
long modifytime = file.lastModified();//最后修改时间
System.out.println("fileName:" + fileName);
System.out.println("filePath:" + filePath);
System.out.println("fileAbsolutePath:" + fileAbsolutePath); System.out.println("lostModified:" + modifytime);
System.out.println("lengh:" + len);
17 System.out.println("parent:"+file.getParent());//返回此抽象路径的父目录,若没有父目录则返回null
18 System.out.println("parentFile:"+file.getParentFile());//返回此抽象路径的父目录的File对旬
}
private static void file_demo4() throws IOException {
File file = new File("a.txt");
file.createNewFile();// 创建文件,若文件不存在则创建,若已存在则不创建
// 静态字段,在默认临时路径下创建临时文件,第一个参数是文件名,第二个参数是文件后缀名,返回File对象
File.createTempFile("temp", "aaa");
// 静态字段,在指定目录下创建临时文件,第一个参数是文件名,第二个参数是文件后缀名,返回File对象
File.createTempFile("temp", ".aaa", new File("C:\\Users"));
}
2,创建目录及删除目录或文件
private static void file_demo5() {
File file=new File("C:\\abc");
file.mkdir();//创建文件夹也即是目录
file.mkdirs();//创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。即创建“C:\a\b\c\d”这样的目录
file.delete();//删除目录或文件,只能删除最内层的文件或目录,若多级目录只能删除一级
file.deleteOnExit();//当虚拟机退出时删除文件或目录
}
四,判断
private static void file_demo6() {
File file = new File("a.txt");
System.out.println(file.exists());// 判断文件或目录是否存在
System.out.println(file.isDirectory());//判断是不是目录
System.out.println(file.isFile());//判断是不是文件
System.out.println(file.isAbsolute());//判断是不是绝对路径
System.out.println(file.isHidden());//判断是不是隐藏文件或目录
}
五,重命名
private static void file_demo7() {
File file = new File("2.avi");
System.out.println(file.renameTo(new File("C:\\9999.avi")));//相当于剪切+重命名的功能
}
六,系统根目录和容量大小
private static void file_demo8() {
File[] files = File.listRoots();//系统根目录即系统盘符
for (File file : files) {//getUsableSpace()与 getFreeSpace() 相比,能更准确地估计可实际写入的新数据数。
System.out.println(file.getPath() + " 总容量:" + file.getTotalSpace() + " 可用容量:"
+ file.getFreeSpace() + " 已用容量:" + file.getUsableSpace());
}
}
七,获取目录内容
private static void file_demo8() {
File[] files = File.listRoots();//系统根目录即系统盘符
for (File file : files) {//getUsableSpace()与 getFreeSpace() 相比,能更准确地估计可实际写入的新数据数。
System.out.println(file.getPath() + " 总容量:" + file.getTotalSpace() + " 可用容量:"
+ file.getFreeSpace() + " 已用容量:" + file.getUsableSpace());
}
}
// 列出C盘下的java文件
private static void file_demo10() {
File file = new File("C:\\");
String[] fileFilter = file.list(new MyFileNameFilter());// 接收一个实现了FilenameFilter接口的过滤器
for (String str : fileFilter) {
System.out.println(str);
}
}
public class MyFileNameFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
}
返回File文件对象的数组的过滤器
//列出C盘下非隐藏的文件
private static void file_demo11() {
File file = new File("C:\\");
File[] files = file.listFiles(new MyFileFilter());//接收一个实现了FileFilter接口的文件属性过滤器对象的参数
for (File fl : files) {
System.out.println(fl.getName());
}
}
public class MyFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
return !pathname.isHidden();
}
}
九,递归列出C盘下某一目录下的所有文件和目录
public static void main(String[] args) throws IOException {
File file = new File("c:\\abc");
listFile(file);
}
private static void listFile(File file) {
File[] files = file.listFiles();
for (File fl : files) {
if (fl.isDirectory()) {
System.out.println(fl.getName());
listFile(fl);
} else {
System.out.println(fl.getName());
}
}
}
Java中的IO流(三)的更多相关文章
- Java中的IO流总结
Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和Buffe ...
- Java中的IO流(五)
上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream ...
- Java中的IO流(六)
上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...
- Java中的IO流(四)
上一篇<Java中的IO流(三)>把IO流中的文件及目录操作的对象File类记录了一下,本篇把本不属性IO流但又和IO流有关系的一个对象作一下记录,此对象本属于集合框架里的一个子集,即Pr ...
- Java中的IO流(二)
上一篇<Java中的IO流(一)>把学习IO流的字符流作了一下记录,本篇把字节流记录一下. 一,Java中的字节流 Java中的字节流的操作方式与字符流的操作方式大致相同,连方法名都是类似 ...
- Java中的IO流之输入流|乐字节
亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入 ...
- java中的IO流
Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...
- Java中的IO流大体介绍
由于Java中的IO流是在是知识点繁多,所以我大约花了1周的时间将其整理起来.但是整理起来后并不是将完事了,我还是要分字节流和字符流来讲述.然后字节流和字符流中还有是否带有缓冲流. 讲述完IO流后我将 ...
- Java中的IO流,Input和Output的用法,字节流和字符流的区别
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...
随机推荐
- nginx关于 error_page指令详解.md
error_page指令解释 nginx指令error_page的作用是当发生错误的时候能够显示一个预定义的uri,比如: error_page 502 503 /50x.html; 这样实际上产生了 ...
- Csharp: speech to text, text to speech in win
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C++类继承--基类析构函数加上Virtual
下面的内容要说明两个问题:1. 基类的析构函数为什么要加上Virtual--防止内存泄露 1. 基类虚构函数无virtual,派生类无法析构,会导致内存泄露 #include <stdio.h& ...
- oozie安装总结
偶然的机会,去面试的时候听面试官讲他们的调度系统是基于hue+oozie,以前一直没有接触过,今天趁有空,尝试一下oozie 1.环境说明 cat /etc/issue CentOS release ...
- ArcSDE 常用命令
一.sdeservice命令: 1. 创建sde服务:sdeservice –o create ArcSDE常用操作命令(转): 启动cmd 1. 创建和删除ArcSDE服务操作命令(sdeservi ...
- 红黑树(R-B Tree)
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树.红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black). ...
- idea基础操作
idea 类和方法注释模板生成 设置教程:https://blog.csdn.net/xiaoliulang0324/article/details/79030752
- RabbitMQ 启动
1.使用Rabbit MQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态,你可以在命令行中使用下面的命令激活: C:\Program Files\RabbitMQ Serve ...
- css z-index层重叠顺序
一.z-index语法与结构 z-index 跟具体数字 如:div{z-index:100}注意:z-index的数值不跟单位. z-index的数字越高越靠前,并且值必须为整数和正数(正数的整数) ...
- CentOS 系统新装每次必看,直到背下。。
1.CentOS7 mini 修改网卡信息: vi /etc/sysconfig/network-scripts/ifcfg-ens192 ONBOOT = yes vi /etc/resolv.co ...