File类并未涉及文件内容的读取或写入,这些操作必须通过IO流完成
File类的操作:
package com.day1;
/*
* 创建File类的实例
* File(String filePath)
* File(String parentPath,String chilePath )
*
* */
import java.io.File;
import java.io.IOException;
import java.util.Date;
public class FileTest {
public void test(){
//构造器1
File file=new File("hello.txt");//相对路径,相对于当前项目
File file1=new File("D:/下载/a.txt");//绝对路径
System.out.println(file);
System.out.println(file1);
//构造器2
File file2=new File("D:/下载","ha1");//child可以是个文件,也可以是个文件目录
System.out.println(file2);
//构造器2
File file3=new File(file2,"a.txt");
System.out.println(file3);
}
public void test2(){
File file=new File("hello.txt");//相对路径,相对于当前项目
File file1=new File("D:/下载/a.txt");//绝对路径
// System.out.println(file);
//绝对路径
System.out.println(file1.getAbsolutePath());
//获取路径
System.out.println(file1.getPath());
//获取名称
System.out.println(file1.getName());
//获取上层文件目录路径
System.out.println(file1.getParent());
//获取文件长度(字节数)
System.out.println(file1.length());
//获取最后一次的修改时间
System.out.println(new Date(file1.lastModified()));
System.out.println("************************************");
//接下来两个方法适用于文件目录
//Strign[] list()获取指定目录下的所有文件或者文件目录的名称数组
File file2=new File("D:/下载/ha1");
String[] list=file2.list();
for (String s:list
) {
System.out.println(s);
}
System.out.println("************************************");
//File[] listFiles() 获取指定目录下的所有文件或者文件目录的File数组
File[] files = file2.listFiles();
for (File f:files
) {
System.out.println(f);
}
System.out.println("************************************");
//renameTo(File dest):把文件重命名为指定的文件路径
//要想保证为ture,要保证file3存在,file4不存在,运行完成之后,file1消失
File file3=new File("hello.txt");//相对路径,相对于当前项目
File file4=new File("D:/下载/hi.txt");//绝对路径
boolean b = file3.renameTo(file4);
System.out.println(b);
}
//file类的判断方法
public void test3(){
File file1=new File("D:/下载/hi.txt");
File file2=new File("D:/下载/hi1.txt");
//判断是否是文件目录
System.out.println(file1.isDirectory());
//判断是否是文件
System.out.println(file1.isFile());
//判断是否存在
System.out.println(file1.exists());
//判断是否可读
System.out.println(file1.canRead());
//判断是否可写
System.out.println(file1.canWrite());
//判断是否隐藏
System.out.println(file1.isHidden());
System.out.println("************************");
//判断是否是文件目录
System.out.println(file2.isDirectory());
//判断是否是文件
System.out.println(file2.isFile());
//判断是否存在
System.out.println(file2.exists());
//判断是否可读
System.out.println(file2.canRead());
//判断是否可写
System.out.println(file2.canWrite());
//判断是否隐藏
System.out.println(file2.isHidden());
}
//创建,删除硬盘中对应的文件或文件目录
public void test4() {
//文件创建与删除
File file1 = new File("hi.txt");
if(!file1.exists()){
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建成功");
}else{
//删除
file1.delete();
System.out.println("删除成功");
}
//文件目录创建与删除
//mkdir若父目录存在,则创建成功,若父目录不存在,则创建失败
File file2 = new File("D:/下载/ha1/sfs/sha");
boolean mkdir = file2.mkdir();
if(mkdir){
System.out.println("创建成功1");
}else {
System.out.println("创建失败");
}
//mkdir若父目录不存在,则把父目录创建出来
File file3 = new File("D:/下载/ha1/shas/sdf/fds/sf");
boolean mkdir1 = file3.mkdirs();
if(mkdir1){
System.out.println("创建成功2");
}
}
public static void main(String[] args) {
FileTest f=new FileTest();
f.test();
System.out.println("*********************");
f.test2();
System.out.println("*********************");
f.test3();
System.out.println("*********************");
f.test4();
}
}
IO流:
访问文件:
package com.day1.liu;
import org.junit.Test;
import java.io.*;
/*
*流的分类
* 数据单位:字节 字符
* 流向: 输入 输出
* 角色: 节点 处理
*
* 抽象基类: 节点流(文件流) 缓冲流
*
* InputStream FileInputStream BufferedInputStream
* OutputStream FileOutputStream BufferedOutputStream
* Reader FileReader BufferedReader
* Writer FileWriter BufferedWriter
* */
public class ReaderWriterTest {
public static void main(String[] args) {
File file = new File("liu//hi.txt");//相较于当前的工程
System.out.println(file.getAbsolutePath());
ReaderWriterTest rw = new ReaderWriterTest();
rw.testFileReader();
}
//测试字符流
//说明
//1.read():返回一个读入的字符,如果达到文件末尾,返回-1
//2.为了保证流资源一定可以执行关闭操作,需要使用try-catch-findlly处理
@Test
public void testFileReader() {
FileReader f2 = null;
try {
/