做招商加盟网站怎么做,二级学院网站建设报告,国内餐饮设计网站建设,电商运营培训课程Java文件IO操作一、File类1.相对路径和绝对路径2.路径分隔符#xff08;同一路径下、多个路径下#xff09;3.实例化4.常见方法一、File类 File类继承自Object类#xff0c;实现了Serializable接口和Comparable接口#xff1b; File类属于java.io包#xff1b; File类是文…
Java文件IO操作一、File类1.相对路径和绝对路径2.路径分隔符同一路径下、多个路径下3.实例化4.常见方法一、File类 File类继承自Object类实现了Serializable接口和Comparable接口 File类属于java.io包 File类是文件或者文件目录的一种抽象表示即可使用File类的具体实例化对象表示文件或者文件目录 File类只能对文件或文件目录进行一个抽象表示可对其属性特征进行一定的描述而如果想要对文件内容进行读写则需要借助IO流具体地将File对象作为IO流构造器参数 1.相对路径和绝对路径
基于参考系不同文件路径描述可分为相对路径和绝对路径 相对路径相对于该文件当前位置的路径比如./hello.java表示当前目录下的hello.java文件 绝对路径该文件在文件系统中的详细存储位置比如C:\javase\hello.java即包括文件所在根目录的路径 2.路径分隔符同一路径下、多个路径下 1同一路径下 需要注意不同操作系统中路径分隔符是不同的比如Linux下路径分隔符为斜杠/而Windows系统中为反斜杠\但在java语言中反斜杠用于特殊字符转义故在java中Windows系统的路径分隔符为\\。由于Java主打“一次编译到处运行”故代码编写时若不统一路径分隔符会导致在不同的操作系统上运行程序时会出现异常。Java官方为解决该问题在File类中提供一静态属性separator自动获取当前操作系统的路径分隔符。
使用方法如下
File.separator举例
C:\\javase\\hello.java可在代码中表示为C:File.separatorjavaseFile.separatorhello.javaFile.separator为字符串类型故使用“”进行字符串拼接操作这种操作看起来比较繁琐故我们可直接统一使用斜杠/作为路径分隔符即可。
2多个路径下 此外为了方便分隔多个路径如“./xxx/yyy/c.txt./xxx/yyy/d.txt”表示两个路径File类提供静态属性pathSeparator进行此操作 3输出Windows系统中这四个属性的值
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
System.out.println(File.separator);
System.out.println(File.separatorChar);对应输出
;
;
\
\3.实例化
提供以下四种构造器用于创建File类对象 1File(String pathname) pathname可为
具体文件的相对路径或绝对路径文件目录的相对路径或绝对路径 需要注意此处的相对路径必须是相对于该项目根目录而言及src目录的父目录 // 其实此时File对象是一个抽象的路径表示// 使用路径字符串表示文件路径或文件目录File f1 new File(./hello.txt);System.out.println(f1);File f2 new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com\\northsmile\\javaio\\hello.txt);System.out.println(f2);File f3 new File(../demo);System.out.println(f3);File f4 new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com\\northsmile\\demo);System.out.println(f4);对应输出
.\hello.txt
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio\hello.txt
..\demo
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\demo2File(String parent,String child)
parent为父目录child为父目录下某子目录或文件所在子目录路径 // 使用父路径父目录及子路径子目录/文件所在子目录路径构建File f5 new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com, northsmile);System.out.println(f5);File f6 new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com\\northsmile\\javaio, hello.txt);System.out.println(f6);对应输出
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio\hello.txt3File(File parent,String child)
parent为File类对象表示的父目录child为父目录下某子目录或文件所在子目录路径 // 使用File类对象表示父目录以此结合子路径子目录/文件所在子目录路径构建File f7 new File(f5, javaio/hello.txt);System.out.println(f7);File f8 new File(f5, javaio);System.out.println(f8);对应输出
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio\hello.txt
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio4.常见方法
方法签名含义public String getAbsolutePath()获取绝对路径public String getPath()获取路径如创建File对象时填写的pathnamepublic String getName()获取文件名或文件目录名public String getParent()获取当前文件或目录的上级目录public long length()获取文件长度单位为字节数不能用于获取目录的长度public long lastModified()获该文件或目录最近一次修改时间单位为毫秒public String[] list()获取指定目录下所有文件名或子目录的名称数组只有文件名或子目录名public File[] listFiles()获取指定目录下所有文件名或子目录的File数组路径名均表示为绝对路径形式public boolean renameTo(File dest)将File对象表示的路径重命名public boolean isDirectory()是否为目录public boolean isFile()是否为文件public boolean exists()指定路径是否存在public boolean canRead()指定路径是否可读public boolean canWrite()指定路径是否可写public boolean isHidden()是否为隐藏文件public boolean createNewFile()如果指定文件不存在则自动创建该文件public boolean mkdir()如果指定目录不存在则自动创建指定目录。前提是该目录的父目录存在。public boolean mkdirs()如果指定目录不存在则自动创建指定目录。如果其父目录不存在会自动为其创建父目录public boolean delete()删除指定文件或目录只能删除空目录
示例1 如果指定路径在硬盘中真实存在则在创建File对象时则会对其属性进行具体赋值比如文件长度等反之如果不存在则保持默认值。
// 针对文件
File file new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com\\northsmile\\javaio\\hello.txt);
System.out.println(file.getAbsolutePath());
System.out.println(file.getPath());
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println(file.length());
System.out.println(file.lastModified());System.out.println(---------------------------);
// 针对文件目录
File dir new File(F:\\IDEA_WorkSpace\\JavaIO\\JavaIO\\src\\com\\northsmile);
System.out.println(dir.getAbsolutePath());
System.out.println(dir.getPath());
System.out.println(dir.getName());
System.out.println(dir.getParent());
System.out.println(dir.lastModified());
System.out.println(---------------------------);
String[] fileNamesdir.list();
for (String name:fileNames){System.out.println(name);
}
System.out.println(---------------------------);
File[] filesdir.listFiles();
for (File f:files){System.out.println(f);
}输出结果
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio\hello.txt
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio\hello.txt
hello.txt
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaio
26
1677138552240
---------------------------
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile
northsmile
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com
1677138472477
---------------------------
demo
javaio
---------------------------
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\demo
F:\IDEA_WorkSpace\JavaIO\JavaIO\src\com\northsmile\javaioProcess finished with exit code 0
示例2
// 重命名
File file1new File(hello.txt);
File file2new File(hi.txt);
System.out.println(file1.renameTo(file2));renameTo表示将指定路径重命名为目标路径重命名成功有两个前提
源路径存在目标路径不存在源路径-目标路径有两种对应形式文件-文件或文件目录-文件目录即可对文件或文件目录进行重命名
示例3 File filenew File(hello.txt);System.out.println(file.isDirectory());System.out.println(file.isFile());System.out.println(file.exists());System.out.println(file.canRead());System.out.println(file.canWrite());System.out.println(file.isHidden());输出结果
false
true
true
true
true
false示例4 File filenew File(hi.txt);if (!file.exists()){ // 如果该文件不存在System.out.println(文件创建成功file.createNewFile());}else{System.out.println(文件已存在即将删除该文件。);System.out.println(删除成功file.delete());}File dir new File(./testMkdir/demo);
if (!dir.exists()){if (dir.mkdir()){System.out.println(目录创建成功);}else{System.out.println(目录创建失败);}}else{System.out.println(删除该空目录dir.delete());
}File dir new File(./testMkdir/demo);if (!dir.exists()){if (dir.mkdirs()){System.out.println(目录创建成功);}else{System.out.println(目录创建失败);}}else{System.out.println(删除该空目录dir.delete());}