一、File类
访问文件方法
1.String getName():返回此file对象所表示的文件名
2.String getPath():返回此对象多对应的路径名
3.File getAbsoluteFile():返回File对象的绝对路劲
4.String getAbsolutepath:返回File对象所对应的绝对路劲
5.String getParent():返回此File对象所对应目录的父目录
6.boolean renameTo(File newName)重命名
文件检测方法
1.boolean exists():判断File对象所对应的文件或目录是否存在
2.boolean canWrite():判断File对象所对应的文件和目录是否可写
3.boolean canRead():判断File对象所对应的文件和目录是否可读
4.boolean isFile():判断File对象所对应的是否是文件而不是目录
5.boolean isDirectory():判断File对象所对应的是目录而不是文件
获取文件信息
long lastModified():返回文件的最后修改时间
long length():返回文件内容的长度
文件操作的相关方法
1.boolean createNewFile():当此File对象所对应的文件不存在时,该方法将创建一个该File对象所指定的新文件
2.boolean delete():删除File对象所对应的文件或路劲
3.static File createTempFile(String prefix,String suffix):在默认的临时文件中创建一个临时的空文件
4.static File createTempFile(String prefix,String suffix,File directory):在directory所指定的目录中创建一个临时的空文件夹
5.void deleteOnExit():当Java虚拟机退出时,删除File对象所创建的文件和目录
目录操作方法
boolean mkdir():视图创建一个File对象所对应的目录
String[] list():列出File对象的所有文件名和路径名,返回String数组
File[] listFile():列出File对象的所有子文件和路径返回File数组
static File[] listRoots():列出系统所有的跟路劲
package day09;
import java.io.File;
import java.io.IOException;
//File类
public class Test {
public static void main(String[] args) throws IOException {
//与当前为路劲创建一个File文件
File file = new File(".");
System.out.println(file.getName());
System.out.println(file.getAbsolutePath());
System.out.println(file.getAbsoluteFile());
System.out.println(file.getParent());
System.out.println(file.getAbsoluteFile().getParent());
//在当前路劲下创建一个临时的文件
File tempFile = file.createTempFile("aaaa", "bbbb", file);
//指定JVM退出时删除该文件
tempFile.deleteOnExit();
//指定系统当前的时间作为文件名
File newFile = new File(System.currentTimeMillis() + "");
System.out.println("判断newFile是否存在:"+newFile.exists());//false
//用指定的newFile对象创建一个文件
boolean newFile1 = newFile.createNewFile();//创建成功返回true
System.out.println(newFile1);
//使用list()方法列出当前路劲下的所有的文件和路劲
String[] list = file.list();
System.out.println("=====当前路劲下所有的文件和路劲");
for(String filename:list){
System.out.println(filename);
}
//使用listRoot()方法列出所有的磁盘根路劲
File[] files = File.listRoots();
for(File filesRoot:files){
System.out.println(filesRoot);
}
}
}
//创建文件和文件夹
String input = "C:\\Users\\pfliu1\\Desktop\\aaa";
File file = new File(input);
if(file.isDirectory()){
String[] list = file.list();
for (int i = 0; i < list.length; i++) {
File file1 = new File(input + "\\" + list[i]);
if(file1.isDirectory()){
FileOutputStream fileOutputStream = new FileOutputStream(input + "\\" + list[i]+ "\\"+ "ddddd.txt");
fileOutputStream = new FileOutputStream(path);
fileOutputStream.write("i love you".getBytes());
fileOutputStream.write("\r\n".getBytes());
fileOutputStream.write(97);
fileOutputStream.write("\r\n".getBytes());
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
outputStreamWriter.append("今天时我联系你的第一天");
outputStreamWriter.append("\r\n");
outputStreamWriter.append("不要让我失望哦!!");
outputStreamWriter.close();
}else{
file1.delete();
//创建新的文件夹
File file2 = new File(input + "\\" + "BBBB");
//file2.mkdirs();//不友好
Path directory = Files.createDirectory(Paths.get(input + "\\" + "AAAA"));
System.out.println(directory);
}
}
}
二、流的分类
1.输入流和输出流
输入流:从键盘读取数据,而不能写入数据,主要以InputStream,Reader作为基类
输出流:从键盘写入数据,而不能读取数据,主要以OutputStream,Writer作为基类
划分输入流和输出流的是从程序运行所在内存的角度出发的
分类 | 输入流 | 输出流 |
方式 | 读取数据 | 写入数据 |
基类 | InputStream/Reader | OutputStream/Writer |
2.字节流和字符流
字节流:操作的数据单元是8位的字节,主要以InputStream,OutputStream作为基类
字符流:操作的数据单元是16位的字符,主要以Reader和Writer作为基类