File
删除功能
f1.delete();
删除文件夹或者目录。
- 绝对路径:完整的路径名,直接可以表示他做对应的文件。
- 相对路径:需要使用其他路径信息对其经行解释。
删除注意事项
- 如果一个目录中有内容(目录或者文件夹),就不能直接删除这个目录,必须将其内容删除后才可删除该目录。
IO流
概述
- IO:输入输出
- 流:抽象概念,数据传输的总称。数据在设备间的传输称为流,即流的本质是数据传输。
- IO流用来处理数据传输。
分类
- 按数据流向:输入流(读)、输出流(写)
- 按数据类型:字节流(输入流、输出流)、字符流(输入流、输出流)
默认按照数据类型分。
字节流写数据
字节流抽象基类:
- InputStream:输入流的超类
- OutputStream:输出流的超类
FileOutputStream:文件输出流将数据写入File
//FileOutputStream(String name)创建文件输出流
FileOutputStream fo = new FileOutputStream("0828\\a.text");
//FileOutputStream(new File(name))创建文件输出流
FileOutputStream fos = new FileOutputStream(new File("0828\\a.text"));
//写入文件输出流,一次写一个字节数据,
fo.write(97);//a
fo.write(57);//9
fo.write(55);//7
//写入byte数组
// byte[] b = {44,67,89,89,98};
byte[] b = "sowdvfdiog".getBytes();
fo.write(b);
//换行,系统记事本用\r
fo.write("\n".getBytes());
//输入指定位置的字节
fo.write(b,0,b.length);
//释放资源
fo.close();
追加写入
FileOutputStream fo1 = new FileOutputStream("0828\\a.text",true)
默认在头部写,即重写文件,使用true,在文件尾部写,可实现追加写入。
异常处理(除了抛出异常外的处理方法)
FileOutputStream fo = null;
try {
fo = new FileOutputStream("0828\\b.text", true);
fo.write("woooooo".getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally {
//如过路径不存在不能创建文件,那么文件就为null,fo.close();会空指针异常
//提前处理
if (fo != null) {
try {
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取文件中的数据
按一个一个字节方式读取
FileInputStream fi = new FileInputStream("0828\\a.text");
//读一个字节a
int read = fi.read();
System.out.println(read);
System.out.println((char)read);
//第二次读
int read1 = fi.read();
System.out.println(read1);
System.out.println((char)read1);
//读取全部数据
// int by = fi.read();
// while (by != -1){
// System.out.print((char)by);
// //继续向下读取
// by = fi.read();
// }
//优化读取全部数据,标准代码
int by;
while ((by = fi.read()) != -1)
System.out.print((char)by);
fi.close();
按一个一个字节数组的方式读取数据
byte [] bys = new byte[1024];//1024及其整数倍
int len;
while ((len=fi.read(bys))!=-1){
//转成字符串输出
System.out.print(new String(bys,0,len));
}
字节缓冲流
BufferOutputStream:缓冲输出流,应用程序可以像底层输出流写入字节,不必为每个写入的字节导致底层系统的调用。
BufferInputStream:创建一个内部缓冲区数组,可以一次很多字节。
构造方法:
- 字节缓冲输出流:BufferedOutputStream(OutputStream out)
- 字节缓冲输入流:BufferedInputStream(InputStream out)
- 字节缓冲流只提供缓冲区,读写数据还是得依靠基本的字节流对象进行操作。
FileInputStream fi = new FileInputStream("E:\\a.txt");
FileOutputStream fo = new FileOutputStream("0829\\a.txt");