java基础:12.2 文本I/O(二)File类、遍历
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java基础:12.2 文本I/O(二)File类、遍历,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4214字,纯文字阅读大概需要7分钟。
内容图文
在12.1 小节我对IO有了基本的认识。这一节主要是整理一下
1. File 类
首先,File属于的类:java.io.file类
。
斜杠/
是Java的目录分隔符
。 在Windows 中目录的分隔符是反斜杠(\)。
File 对象封装了文件或路径的属性
,但是它既不包括创建文件的方法,也不包括从/ 向文件读/ 写数据(称为数据输入输出,简称I/O) 的方法。为了完成I/O 操作,需要使用恰当的Java I/O 类创建对象。这些对象包含从/ 向文件读/ 写数据的方法。文本文件本质上是存储在磁盘上的字符。
//绝对路径
File f1 = new File("d:/Java");
System.out.println("f1的绝对路径:" + f1.getAbsolutePath()); //f1的绝对路径:d:\Java
// 相对路径,相对于工作目录,如果在eclipse中,就是项目目录
File f2 = new File("java.exe");
System.out.println("f2的绝对路径:" + f2.getAbsolutePath()); //f2的绝对路径:F:\java\Day0312\Charp19\java.exe
// 把f1作为父目录创建文件对象
File f3 = new File(f1, "java.exe");
System.out.println("f3的绝对路径:" + f3.getAbsolutePath()); //f3的绝对路径:d:\Java\java.exe
执行完上面的程序后,去对应的路径下我们并不能找到java.exe文件。这是为什么呢??
因为:构建一个File 实例并不会
在机器上创建一个文件。不管文件是否存在,都可以创建任意文件名的File 实例。可以调用File 实例上的exists()
方法来判断这个文件是否存在。
File f = new File("java.exe");
System.out.println("f的绝对路径:" + f.getAbsolutePath());
System.out.println("f的当前文件是" + f );
System.out.println("判断是否存在:"+ f.exists());
System.out.println("判断是否是文件夹:"+f.isDirectory());
System.out.println("判断是否是文件:"+f.isFile());
System.out.println("获取文件的长度:"+f.length());
long time = f.lastModified();
Date d = new Date(time);
System.out.println("获取文件的最后修改时间:"+d);
f.setLastModified(0); //设置文件修改时间为1970.1.1 08:00:00
//文件重命名
File f1 =new File("C++.exe");
f.renameTo(f1);
System.out.println("把java.exe改名成了C++.exe");
System.out.println("注意: 需要在相应路径下确实存在java.exe文件,才可以看到对应的文件长度、修改时间等信息");
列举一些常用方法 File f = new File("d:/X1/xxx/java.exei");
f.list();
以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
File[]fs= f.listFiles();
// 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
f.getParent();
// 以字符串形式返回获取所在文件夹
f.getParentFile();
// 以文件形式返回获取所在文件夹
f.mkdir();
// 创建文件夹,如果父文件夹xxx不存在,创建就无效
f.mkdirs();
// 创建文件夹,如果父文件夹xxx不存在,就会创建父文件夹
f.createNewFile();
// 创建一个空文件,如果父文件夹xxx不存在,就会抛出异常
f.getParentFile().mkdirs();
// 所以创建一个空文件之前,通常都会创建父目录
f.listRoots();
// 列出所有的盘符c: d: e: 等等
f.delete();
// 刪除文件
f.deleteOnExit();
// JVM结束的时候,刪除文件,常用于临时文件的删除
遍历当前文件夹
package FileIO;
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class Test {
public static void main(String[] args) {
File f = new File("f:/HSM/");
File[] fs = f.listFiles();
if(null==fs)
return;
long minSize = Integer.MAX_VALUE;
long maxSize = 0;
File minFile = null;
File maxFile = null;
for (File file : fs) {
if(file.isDirectory())
continue;
if(file.length()>maxSize){
maxSize = file.length();
maxFile = file;
}
if(file.length()!=0 && file.length()<minSize){
minSize = file.length();
minFile = file;
}
}
System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
}
}
遍历所有子文件夹
package FileIO;
import java.io.File;
public class Test {
static long minSize = Integer.MAX_VALUE;
static long maxSize = 0;
static File minFile = null;
static File maxFile = null;
//使用递归来遍历一个文件夹的子文件
public static void listFiles(File file){
if(file.isFile()){
if(file.length()>maxSize){
maxSize = file.length();
maxFile = file;
}
if(file.length()!=0 && file.length()<minSize){
minSize = file.length();
minFile = file;
}
return;
}
if(file.isDirectory()){
File[] fs = file.listFiles();
if(null!=fs)
for (File f : fs) {
listFiles(f);
}
}
}
public static void main(String[] args) {
File f = new File("c:\\windows");
listFiles(f);
System.out.printf("最大的文件是%s,其大小是%,d字节%n",maxFile.getAbsoluteFile(),maxFile.length());
System.out.printf("最小的文件是%s,其大小是%,d字节%n",minFile.getAbsoluteFile(),minFile.length());
}
}
内容总结
以上是互联网集市为您收集整理的java基础:12.2 文本I/O(二)File类、遍历全部内容,希望文章能够帮你解决java基础:12.2 文本I/O(二)File类、遍历所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。