IO流复习

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)

//呆补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值