P611~P659
文件
保存数据的地方
文件流
文件在程序中是以流的形式来操作的
流:数据在数据源(文件)和程序(内存)之间的路径
输入流:数据从数据源到程序的路径
输出流:数据从程序到数据源的路径
常用文件操作方法
文件创建,FileCreate.java
- new File(String 路径):根据路径构建一个File对象
- new File(File parent,String child):根据父目录文件+子路径构建
- new File(String parent,String child):根据父目录+子路径构建
- createNewFile:创建新文件
import java.io.File;
import java.io.IOException;
public class FileCreate {
public static void main(String[] args) {
create1();
create2();
create3();
}
public static void create1(){
String path="./16IO流/news1.txt";
File file = new File(path);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void create2(){
File parentFile = new File("./16IO流");
String fileName="new2.txt";
File file = new File(parentFile, fileName);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void create3(){
String parentName= "./16IO流";
String fileName="new3.txt";
File file = new File(parentName, fileName);
try {
file.createNewFile();
System.out.println("创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
获取文件相关信息
- getName,文件名
- getAbsolutePath,获取绝对路径
- getParent,文件父级目录
- length,文件大小(字节)
- exists,文件是否存在
- isFile,是不是一个文件
- isDirectory,是不是一个目录
目录操作和文件删除
- mkdir创建一级目录
- mkdirs创建多级目录
- delete删除空目录或文件,如果目录下有文件和子目录,需要先删除
IO流原理及流的分类
- I/O是input、output的缩写,用于处理数据传输,如读写文件,网络通讯等
- Java程序中,对于数据的输入/输出操作以流的方式进行
- java.io包下提供了各种流类和接口,用以获取不同种类的数据,并通过方法输入或输出数据
- input:读取外部数据到程序中
- output:将程序数据输出到磁盘、光盘等存储设备中
流的分类
- 按操作数据单位不同分为:字节流(8bit)、字符流(按字符)
- 按数据流的流向不同分为:输入流、输出流
- 输入流:字节流(InputStream)、字符流(Reader)
- 输出流:字节流(OutputStream)、字符流(Writer)
- 按流的角色的不同分为:节点流、处理流、包装流
常用的类
InputStream抽象类是所有类字节输入流的超类
InputStream常用子类
- FileInputStream:文件输入流
- BufferedInputStream:缓冲字节输入流
- ObjectInputStream:对象字节输入流
文件拷贝
- 创建文件输入流,将文件读入程序
- 创建文件输出流,将读取到的文件数据,写入到指定的文件
Properties类
- 专门用于读写配置文件的集合类
- 配置文件的格式:键=值
- 注意键值对不需要有空格,值不需要用引号,默认类型就是String
Properties常见方法
- load:加载配置文件的键值对到Properties对象
- list:将数据显示到指定设备
- getProperty(key):根据键获取值
- setProperty(key,value):设置键值对到Property对象
- store:将Properties中的键值对存储到配置文件