IO
File
1.创建File
- new File(String pathname) //根据路径直接创建File对象(创建在内存中,调用createNewFile()才能在磁盘创建)
- new File(File parent,String child) //根据父目录文件+子路径构建
- new File(String parent,String child) //根据父目录+子路径构建
- createNewFile 创建新的文件存在磁盘中
2.获取文件相关信息
- getName :获取文件名称
- getAbsolutePath:获取绝对路径
- getParent:获取父亲文件
- length:获取文件大小(字节)
3.目录操作和文件删除
- mkdir:创建一级目录
- mkdirs:创建多级目录
- delete:删除空目录或文件
io
input:输入流,将文件输入到内存中(及读取文档到内存后并在屏幕显示)
output:输出流,将内存中信息存储到磁盘等设备中

1.FileInputStream(操作字节)
一个字符三个字节,所以读取字符时会出现乱码
1.fileInputStream.read():一次读取一个字节,效率低
public void test01(){
//文件路径
String filePath = "g:\\new.txt";
FileInputStream fileInputStream = null;
//fileInputStream.read()返回值 读取一个返回int 没有返回-1
int read = 0;
try {
//创建流去读取数据
fileInputStream = new FileInputStream(filePath);
while((read = fileInputStream.read()) != -1){
System.out.print((char)read);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
// 关闭流
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.fileInputStream.read(bytes)一次读取多个字节
public void test02(){
//文件路径
String filePath = "g:\\new.txt";
FileInputStream fileInputStream = null;
byte[] bytes = new byte[8];
int len;
try {
fileInputStream = new FileInputStream(filePath);
// fileInputStream.read(bytes)返回值为读取到的字节数,没有则返回-1
while((len = fileInputStream.read(bytes)) != -1){
System.out.print(new String(bytes,0,len));
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.FileOutputStream(操作字节)
文件写入内容
public void test01() throws IOException {
String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\outputstream\\1.txt";
//没有指定文件时会自动创建
// 每次都写入内容时都会覆盖原来的内容
// FileOutputStream fileOutputStream = new FileOutputStream(filePath);
// new FileOutputStream(filePath, true)会每次都在原先的文档中追加写入内容
FileOutputStream fileOutputStream = new FileOutputStream(filePath, true);
// fileOutputStream.write('h');
String str = "123fwewrfew";
// getBytes()会将String类型转化为byte数组
fileOutputStream.write(str.getBytes());
fileOutputStream.close();
}
3.FileReader(操作字符)
1.常用方法

1.fileReader.read()一次读取一个字符
public void test01() throws IOException {
String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
FileReader fileReader = new FileReader(filePath);
int data = 0;
while((data = fileReader.read()) != -1){
System.out.print((char)data);
}
fileReader.close();
}
2.fileReader.read(bytes)一次读取一个字符数组
public void test02() throws IOException {
String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
FileReader fileReader = new FileReader(filePath);
int len = 0;
char[] bytes = new char[1024];
while((len = fileReader.read(bytes)) != -1){
System.out.print(new String(bytes,0,len));
}
fileReader.close();
}
4.FileWriter(操作字符)

FileWriter使用后,必须关闭流或者刷新流,否则写入不了文件中。close等价于flush+关闭流
5.BufferedReader(处理流)(操作字符)
public static void main(String[] args) throws IOException {
String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
String line = null;
// bufferedReader.readLine()读取一行,没有内容时返回为null
while((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
// 关闭流 bufferedReader.close底层还是关闭的FileReader
bufferedReader.close();
}
6.BufferedWriter(操作字符)
public static void main(String[] args) throws IOException {
String filePath = "G:\\IDEA\\21.12.28\\javaSE\\reflection\\src\\com\\shuai\\io\\新建文本文档.txt";
// 开启追加写内容是在new FileReader(filePath)这个节点流
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
String line = null;
// bufferedReader.readLine()读取一行,没有内容时返回为null
while((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
// 关闭流 bufferedReader.close底层还是关闭的FileReader
bufferedReader.close();
}
7.Properties


浙公网安备 33010602011771号