—001—
常见的File 路径 还有一种是new File(String parent,String child)的 用法
import java.io.File;
public class io001 {
//io流
//两个常量:1.路径分隔符;
// 2.文件分割符\
public static void main(String[] args) {
System.out.println(File.pathSeparator);
System.out.println(File.separator);
//路径表示形式1
String path = "D:\\xp\\test\\2.jpg";
//动态生成用2
path = "E:"+File.separator+"xp"+File.separator+"test"+File.separator+"3.jpg";
//推荐这种3
path = "E:/xp/test/2.jpg";
//相对路径
String parentPath = "D:/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());
//绝对路径
src = new File("E:/xp/test/2.jpg");
System.out.println(src.getName());
System.out.println(src.getPath());
//没有盘符
src = new File("test.txt");
System.out.println(src.getName());
System.out.println(src.getPath());
System.out.println(src.getAbsolutePath());
}
}
—002—
文件的创建和删除
import java.io.File;
import java.io.IOException;
public class io002 {
public static void test1() {
//1.获取文件路径信息
File src = new File("D:/xp/test/2.jpg");
System.out.println(src.getName());
//如果是绝对路径 返回完整路径
//如果是相对路径 返回相对路径
System.out.println(src.getPath());
//返回绝对路径
System.out.println(src.getAbsolutePath());
//返回上一级目录
//如果是相对,返回空
System.out.println(src.getParent());
}
public static void test2(){
//2.获取详细信息
String path = "D:/xp/test/2.jpg";
File src = new File(path);
System.out.println("文件是否存在"+src.exists());
System.out.println("文件是否可写"+src.canWrite());
System.out.println("文件是否可写"+src.canRead());
if(src.isFile()){
System.out.println("文件");
System.out.println("读取字节长度"+src.length());
}else if(src.isDirectory()){
System.out.println("文件夹");
}else if(src.isAbsolute()){
System.out.println("绝对路径");
}else{
System.out.println("假装不知道你是啥");
}
}
public static void test3() throws IOException, InterruptedException {
//3.创建和删除文件
//系统关键字会创建失败
//create
String path = "D:/mydirec";
File src = new File(path);
if(src.exists()){
System.out.println("文件存在啦");
}else{
boolean flag = false;
try {
flag = src.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(flag?"创建成功":"创建失败");
}
//delete
if(src.exists()){
boolean flag2 = src.delete();
System.out.println(flag2?"删除成功":"删除失败");
}else{
System.out.println("文件不存在");
}
//临时文件的创建
//static createTempFile(前缀3个字节长,后缀默认.temp)默认临时目录
//static createTempFile(前缀3个字节长,后缀默认.temp,目录)
//程序结束后删除
File temp =File.createTempFile("tes",".temp",new File("D:/"));
System.out.println("创建临时文件成功");
Thread.sleep(1000);
temp.deleteOnExit();
}
public static void main(String[] args) throws IOException, InterruptedException {
io002 io = new io002();
io002.test2();
io002.test3();
}
}
**—003—
子目录和文件筛选
import java.io.File;
import java.io.FilenameFilter;
public class io003 {
public static void main(String[] args) {
String path = "D:/learn/src/IOclass";
File src = new File(path);
//创建目录,父目录必须存在 不存在则创建失败
//src.mkdir();
//创建目录,如果父目录不存在 一同创建
//src.mkdirs();
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.getName());
System.out.println(temp.getAbsolutePath());
}
System.out.println("===子文件,java对象==");
//命令设计模式
subFiles = src.listFiles(new FilenameFilter() {
@Override
//dir代表src,目标目录
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith("java");
}
});
for(File temp : subFiles){
System.out.println(temp.getName());
}
}
}
}
–004–
简单的目录遍历
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class io005 {
public static void iterdirec(File src) {
if (src.equals(null)) {
return;
}
System.out.println(src.getAbsolutePath());
if(src.isDirectory()){
for(File sub : src.listFiles()){
iterdirec(sub);
}
}
}
public static void main(String[] args){
//输出子孙及目录
//递归方法
String path = "D:/learn/src/IOclass";
File src = new File(path);
io005.iterdirec(src);
//输出根目录
File[] root = File.listRoots();
System.out.println(Arrays.toString(root));
//System.out.println(root.toString());
for(File temp:root){
try{
iterdirec(temp);
}catch(NullPointerException n){}
}
}}