一.File中的两个常量分隔符
package File;
import java.io.File;
/** * 两个常量 * 1、路径分隔符 ; * 2、名称分隔符 \ (windows) /(linux等) */
@SuppressWarnings("all")
public class Demo01 {
public static void main(String[] args) {
System.out.println(File.pathSeparator);
System.out.println(File.separator);
//路径表示形式
String path = "E:\\xp\\test\\2.jpg"; //不推荐
//适合动态生成时使用
path = "E:"+File.pathSeparator+"win7"+File.separator+"test"+File.separator+"2.jpg";
path = "E:/win7/test/2.jpg";//推荐使用
}
}
运行结果:
;
\
二.相对路径与绝对路径
package File;
import java.io.File;
/** * 相对路径与绝对路径 构造File对象 * 1.相对路径 * File(String parent,String child) ==>File("E:/xp/test","2.jpg"); * File(File parent,String child) ==>File(new File("E:/xp/test"),"2.jpg"); * 2.绝对路径 * src = new File("E:/xp/test/2.jpg"); * * getName() 返回名称 * getPath() 如果是绝对的,返回绝对路径;如果是相对的,返回相对路径。 * getAbsolutePath() 返回绝对路径 */
public class Demo02 {
public static void main(String[] args) {
String parentPath = "E:/xp/test";
String name = "2.jpg";
//相对路径
File src = new File(parentPath,name);
//src = new File(new File(parentPath),name);
//输出
System.out.println(src.getName());
System.out.println(src.getPath());
System.out.println("-------------");
//绝对路径
src = new File("E:/xp/test/2.jpg");
System.out.println(src.getName());
System.out.println(src.getPath());
System.out.println("-------------");
//没有盘符,一user.dir构建
src= new File("test.txt");
//src= new File(".");//当前路径,通过这种方式可以找到当前工作空间路径。
System.out.println(src.getName());//返回名称
System.out.println(src.getPath());//如果是绝对的,返回绝对路径;如果是相对的,返回相对路径。
System.out.println(src.getAbsolutePath());
}
}
运行结果:
2.jpg
E:\xp\test\2.jpg -------------
2.jpg
E:\xp\test\2.jpg -------------
test.txt
test.txt
G:\program\javase\IOFile\test.txt
三.File的常用方法
package File;
import java.io.File;
import java.io.IOException;
/** * 常用方法 * 1、文件名 * getName() 文件名、路径名 * getPath() 路径名 * getAbsoluteFile() 绝对路径所对应的File对象 * getAbsolutePath() 绝对路径名 * getParent() 返回父目录 * * 2、判断信息 * exists() * canWrite() * canRead() * isFile() * isDirectory() * isAbsolute() 消除平台差异,如以盘符开头,其他以/开头 * 3、长度(字节数) 不能读取文件夹的长度 * * 4、创建、删除文件 * createNewFile 创建新文件,如果不存在,进行创建;如果存在,返回false。 * 临时文件 */
@SuppressWarnings("all")
public class Demo03 {
public static void main(String[] args) {
test01();
System.out.println("========");
test02();
System.out.println("========");
try {
test03();
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件操作失败");
}
}
//1、获取文件名称
public static void test01()
{
//File src = new File("E:/xp/test/2.jpg");
File src = new File("test/2.txt");
System.out.println(src.getName());//名称
//如果是绝对路径,返回完整路径,否则相对路径
System.out.println(src.getPath());
//返回绝对路径
System.out.println(src.getAbsolutePath());
//返回上一级目录,如果是相对路径,可能返回null;如new File("2.txt");
System.out.println(src.getParent());
}
//2、判断信息 读取相关信息,不是读取内容,而是位置,大小,占用空间,创建时间等属性
public static void test02()
{
//String path = "2.txt";
String path = "G:/love.txt";
File src = new File(path);
System.out.println("文件是否存在:"+src.exists());
//是否可读写
System.out.println("文件是否可写:"+src.canWrite());
//isFile()、isDirectory()
if(src.isFile())
{
System.out.println("文件");
}
else if(src.isDirectory()) {
System.out.println("文件夹");
}
else {
System.out.println("文件不存在");
}
System.out.println("是否为绝对路径:"+src.isAbsolute());
System.out.println("长度为:"+src.length());//这个长度是字节数
}
//3、创建,删除文件
public static void test03() throws IOException
{
//创建文件
//con 系统关键字,不能创建成功。
String path = "F:/100.txt";
File src = new File(path);
if(!src.exists())
{
boolean flag = src.createNewFile();
System.out.println(flag?"创建成功":"创建失败");
}
//删除文件
boolean flag = src.delete();
System.out.println(flag?"删除成功":"删除失败");
//static createTempFile(前缀3个字节长,后缀默认.temp) 默认临时空间
//static createTempFile(前缀3个字节长,后缀默认.temp,目录)
File temp = File.createTempFile("tes", ".temp",new File("G:/"));
try {
Thread.sleep(2000);
temp.deleteOnExit();//退出即删除
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
运行结果:
2.txt
test\2.txt
G:\program\javase\IOFile\test\2.txt
test ========
文件是否存在:true
文件是否可写:true
文件
是否为绝对路径:true
长度为:32 ========
创建成功
删除成功
四.创建目录
package File;
import java.io.File;
import java.io.FilenameFilter;
/** * 创建目录 * mkdir() 创建目录 必需确保父目录存在,如果不存在,创建失败。 * mkdirs() 创建目录 如果父目录链不存在,一同创建。 * String[] list() 文件|目录名 字符串形式 * File[] listFiles() 文件|目录名 File对象形式 * File[] listFiles(FilenameFilter filter) 过滤 */
@SuppressWarnings("all")
public class Demo04 {
public static void main(String[] args) {
test01();
test02();
}
public static void test01()
{
String path = "G:/try/123/123/325";
File src = new File(path);
//src.mkdir();
src.mkdirs();
System.out.println("创建成功。");
}
public static void test02()
{
//String path = "G:/try/123";
String path = "G:/work";
File src = new File(path);//文件夹
if(src.isDirectory())//存在并且为目录
{
System.out.println("======子目录|子文件名 《字符串的表现形式》======");
String[] subNames = src.list();
for(String temp:subNames)
{
System.out.println(temp);
}
System.out.println("====子目录|子文件 《File对象》=====");
File[] subFiles = src.listFiles();
for(File temp:subFiles )
{
System.out.println(temp.getAbsolutePath());
}
System.out.println("======子文件,Java对象======");
//命令设计模式
subFiles = src.listFiles(new FilenameFilter() {
/** * dir代表src */
@Override
public boolean accept(File dir, String name) {
//System.out.println(dir.getName());
//System.out.println(dir.getAbsolutePath());
//必须是文件且后缀是.java
return new File (dir,name).isFile()&&name.endsWith(".rar");
}
});
for(File temp:subFiles)
{
System.out.println(temp.getAbsolutePath());
}
}
}
}
运行结果:
创建成功。
======子目录|子文件名======
123
324
dsafds.java
sdafd.java
新建文件夹 (3)
新建文件夹 (4)
====子目录|子文件File对象=====
G:\try\123\123
G:\try\123\324
G:\try\123\dsafds.java
G:\try\123\sdafd.java
G:\try\123\新建文件夹 (3)
G:\try\123\新建文件夹 (4)
======子文件,Java对象======
G:\try\123\dsafds.java
G:\try\123\sdafd.java
五.输出子孙级目录或文件的名称
package File;
import java.io.File;
import java.util.Arrays;
/** * 输出子孙级目录|文件的名称 * 1、listFile() * 2、递归 * * static listRoots() 根路径 * @author liguodong */
public class Demo05 {
public static void main(String[] args) {
String path = "G:/try/123";
File parent = new File(path);
printName(parent);
System.out.println("----------");
File[] roots = File.listRoots();
System.out.println(Arrays.toString(roots));
}
public static void printName(File src){
if(null==src||!src.exists()){
return;
}
System.out.println(src.getAbsolutePath());
if(src.isDirectory()){
for(File sub:src.listFiles()){
printName(sub);
}
}
}
}
运行结果:
G:\try\123
G:\try\123\123
G:\try\123\123\325
G:\try\123\432
G:\try\123\432\1.txt
G:\try\123\432\2.txt
G:\try\123\432\3.txt
G:\try\123\4344
----------
[C:\, D:\, E:\, F:\, G:\, H:\, K:\]
原文链接:https://blog.csdn.net/scgaliguodong123_/article/details/45897507
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~