1.File
文件系统中的 文件和目录 都可以通过File类进行封装,封装后可以对文件或者目录进行存在操作。
1.1构造方法
File(String pathname)
File(String parent, String child)
File(File parent, String child)
File file1= new File("/home/mk/IdeaProjects/IO流复习/IO流01/file.txt");
System.out.println(file1);
File file2= new File("/home/mk/IdeaProjects","/IO流复习/IO流01/file.txt");
System.out.println(file2);
File file= new File("/home/mk/IdeaProjects");
File file3= new File(file,"/IO流复习/IO流01/file.txt");
System.out.println(file3);
目录或者文件被封装成file对象后,目录或者文件可以是不存在的
1.2绝对相对路径
绝对路径:可以简单理解从盘符开始
相对路径:相对于当前项目
1.3创建方法
File类可以是目录或者文件的封装,所以File对象可以有创建文件的方法也可以有创建目录的方法
//当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
boolean createNewFile()
//创建由此抽象路径名命名的目录
boolean mkdir()
//创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录
boolean mkdirs()
案例1
File file = new File("/home/mk/IdeaProjects/IO流复习/IO流01/file.txt");
boolean newFile = file.createNewFile();
但是文件的直接上级目录如果不存在则会报错
Exception in thread "main" java.io.IOException: 没有那个文件或目录
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at com.itmark.FileDemo2.main(FileDemo2.java:13)
mkdir() 方法只能用于存在目录的下一级目录创建,否则创建目录方法返回false
mkdirs() 方法会创建多级目录不用担心父目录的存在问题
Note:
当使用mkdirs() 方法时候,即使最后一级是一个文件名 例如 hello.txt 该方法也会把它当做一个目录进行创建。
1.4删除方法
删除文件或者目录
boolean delete()
该方法只能删除最后一级内容(文件或者目录)
1.5判断功能
判断该类封装玩意是否存在,是文件还是目录
boolean isDirectory()
boolean isFile()
boolean exists()
1.6获取子项方法
可以获取路径下的所有文件或者目录
listFiles()
2.IO流复习
理解IO流只需要站在内存角度即可理解,读入内存为输入流,从内存输出为输出流
2.1IO流超类
InputStream:这个抽象类是表示字节输入流的所有类的超类
OutputStream:这个抽象类是表示字节输出流的所有类的超类
子类名特点:子类名称都是以其父类名作为子类名的后缀
2.2文件输入输出流
向目标文件中写入字符,如果文件不存在会进行创建写入
File file= new File("/home/mk/IdeaProjects/IO流复习/IO流01/file.tx")
FileOutputStream fos = new FileOutputStream(file);
fos.write(97);
fos.write(98);
fos.write(99);
fos.close();
注意如果上级直接目录不存在会报错
Exception in thread "main" java.io.FileNotFoundException:
/home/mk/IdeaProjects/IO流复习/IO流01/aa/file11.txt (没有那个文件或目录)
2.3写入文件的三个无返回值方法
void write(int b) 写入一个字节
void write(byte[] b) 写入一个字节数组
void write(byte[] b, int off, int len) 写入一个字节数组并且有偏移量
File file= new File("/home/mk/IdeaProjects/IO流复习/IO流01/file11.txt");
FileOutputStream fos = new FileOutputStream(file);
String s = "我爱北京太南门";
fos.write(s.getBytes("UTF-8"));
fos.close();
2.4换行
windows:\r\n
linux:\n
mac:\r
2.5追加写入
FileOutputStream(String name,boolean append)
//呆补充