一 文件与流—真正存储数据的载体
1 存储关系与类型
文本文件 – 纯文本:操作的是字符型数据:例如 .java/.txt/.class…
媒体文件 – 既可以包含文本也可以包含其他数据:操作字节型数据:例如: .png/.MP4/.exe…
2 流
② 流向:
出 – OutputStream流 – System.out.print()
ps:out是OutputStream流的一个子流PrintStream
二 File类
1 含义:操作硬件设备上的文件资源的类,用户在硬件社设备上直接操作文件;而操作文件的这些方法(增删改查判)需要定义在指定的类中,这个类就是File
// 文件和目录路径名的抽象表示
public class File
2 常用方法–创建文件,文件夹
// 在指定路径下实例化File对象
public class Play {
public static void main(String[] args) {
// public File(String path)
// 有盘符的是绝对路径,没有的是相对路径,相对路径会在项目所在文件夹查找(移植不安全)
// 路径 D:dataPlay.java
// 通过构造器实例化对象,指定文件创建路径(但此时不会在该路径下创建文件)
File file=new File("景区名单.txt");
File file2=new File("File//qq//景区名单1.txt");
try {
// 当且仅当路径下不存在该文件,创建并返回true
if(file.createNewFile()){
System.out.println("创建文件成功");
}else {
// 如果存在,返回false,并且不会重新创建
System.out.println("文件已经存在");
}
// 创建文件夹 成功返回true 失败返回false
System.out.println("一号"+file.mkdir());
// 可以创建一层父目录
System.out.println("二号"+file2.mkdirs());
// 可以创建多层父目录
} catch (IOException e) {
e.printStackTrace();
}
}
}
3 删除文件或目录
public class Play {
public static void main(String[] args) {
File file=new File("景区名单.txt");
File file2=new File("File//qq//景区名单1.txt");
try {
// 当且仅当路径下不存在该文件,创建并返回true
if(file.createNewFile()){
System.out.println("创建文件成功");
}else {
// 如果存在,返回false,并且不会重新创建
System.out.println("文件已经存在");
}
// 创建文件夹 成功返回true 失败返回false
System.out.println("一号"+file.mkdir());
// 可以创建一层父目录
System.out.println("二号"+file2.mkdirs());
// 可以创建多层父目录
System.out.println(file.delete());
// 只能删除文件
file2.deleteOnExit();
// JVM虚拟机终端结束后再删除
} catch (IOException e) {
e.printStackTrace();
}
}
}
4 更改文件名及格式
public class Play {
public static void main(String[] args) {
File file=new File("景区名单.txt");
File file2=new File("File//qq//景区名单1.txt");
try {
// 当且仅当路径下不存在该文件,创建并返回true
if(file.createNewFile()){
System.out.println("创建文件成功");
}else {
// 如果存在,返回false,并且不会重新创建
System.out.println("文件已经存在");
}
// 创建文件夹 成功返回true 失败返回false
System.out.println("一号"+file.mkdir());
// 可以创建一层父目录
System.out.println("二号"+file2.mkdirs());
// 可以创建多层父目录
System.out.println(file.renameTo(new File("File//qq//景区名单2.png")));
// 成功返回true
} catch (IOException e) {
e.printStackTrace();
}
}
}
5 查询文件路径
public class Play {
public static void main(String[] args) {
File file=new File("景区名单.txt");
File file2=new File("File//qq");
try {
// 当且仅当路径下不存在该文件,创建并返回true
if(file.createNewFile()){
System.out.println("创建文件成功");
}else {
// 如果存在,返回false,并且不会重新创建
System.out.println("文件已经存在");
}
// 以String类对象的形式显示当前文件的绝对路径,可操作路径
System.out.println(file.getAbsolutePath());
// 以File类对象的形式显示当前文件的绝对路径,可直接操作文件本身
System.out.println(file.getAbsoluteFile());
System.out.println(file.getName());
// 获取文件名,路径的最后一个名字,若为空则返回空字符串
System.out.println(Arrays.toString(file2.listFiles()));
// 以数组形式返回指定路径下所有文件+文件夹(路径名不表示目录则返回null)
// [Fileqq景区名单1.txt, Fileqq景区名单2.jpg, Fileqq景区名单2.png]
} catch (IOException e) {
e.printStackTrace();
}
}
}
6 判断路径是否为文件夹
public class Play {
public static void main(String[] args) {
File file=new File("景区名单.txt");
File file2=new File("File//qq");
try {
// 当且仅当路径下不存在该文件,创建并返回true
if(file.createNewFile()){
System.out.println("创建文件成功");
}else {
// 如果存在,返回false,并且不会重新创建
System.out.println("文件已经存在");
}
System.out.println(file2.isDirectory());
// 是返回true,否则返回false
} catch (IOException e) {
e.printStackTrace();
}
}
}
7 例子
public class Play {
public static void main(String[] args) {
Case.show(new File("D:\Java\workspace\untitled\File"),".png");
// D:JavaworkspaceuntitledFileqq景区名单2.png
}
}
class Case {
// dir 文件路径 pattern文件后缀(格式)
public static void show(File dir,String pattern){
// 获取指定路径下的文件和文件夹
File[] files=dir.listFiles();
// 遍历数组获取File对象(直接操作文件)
for (File f:files) {
// 判断File对象是否为文件夹
if(f.isDirectory()){
// 是文件夹则进行递归
show(f,pattern);
// 是文件则判断是否符合格式
}else if(f.getName().endsWith(pattern)){
// String格式返回
System.out.println(f.getAbsolutePath());
}
}
}
}
原文地址:https://blog.csdn.net/zhlyxx/article/details/134662741
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5085.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。