write写入数据时需要close关闭
0x01、文件和目录操作
代码示例:
import java.io.File;
public class Hello2 {
public static void main(String args[]) {
//File x = new File(".");
//System.out.print(x.getAbsolutePath());//输出当前目录
File x = new File("xyz");
//x.mkdir();//创建文件
x.delete();//删除文件
}
}
0x02、面向字节的输入输出流
例1:在屏幕上显示文件内容
例2:找出10~100之间的所有姐妹素数,写入到文件中,所谓姐妹素数是指相邻两个奇数均为素数。
读取存储在文件中的姐妹素数
例3:将系统对象写入到文件
例4:读取文件中的对象并显示出来
0x03、面向字符的输入输出流
例1、从一个文本文件中读取数据加上行号后显示
例2、在屏幕上显示文件内容
例3、用FileWriter将某个文件加行号写入另一个文件
例4:编程显示一个文本文件的内容
import java.io.*;
public class Hello2 {
public static void main(String args[]) throws IOException {
FileReader f=new FileReader("x.txt");
int x=f.read();
while(x!=-1) {
System.out.print((char)x);
x=f.read();
}
}
}
输出结果:
0x04、转换流
0x05、文件的随机访问
例1、用随机文件记录访问计数
例2:模拟应用日志处理,将键盘输入数据写入到文件尾部
作业:从一个文本文件中读取若干学生成绩,每个学生成绩占1行,统计所有学生成绩的平均分
import java.io.*;
public class Hello2 {
public static void main(String args[]) throws IOException {
FileReader f=new FileReader("x.txt");
BufferedReader br = new BufferedReader(f);
String str="";
int count=0;
double sum=0,aver=0;
while((str=br.readLine()) != null) {
int a = Integer.parseInt(str);
count++;
sum += a;
System.out.println("同学的成绩为:"+a);
}
aver = sum/count;
br.close();
System.out.println("所有学生的平均成绩为:"+aver);
}
}
输出结果: