关于文件
文件的创建
//File类 如何实例化
File file = new File("E:\\test\\abc\\xyz");
if (!file.exists()) {
file.createNewFile(); // 只能创建空文件
file.mkdirs();//创建多级文件夹
}
file.delete();//删除文件
流 Stream
流的分类
按方向分类 :输入流、输出流 -- 参照物是程序
按传输单位分类 :字节流、字符流
按功能分类 :节点流(低级流),缓冲流(高级流)
字节流 :一般用于传输 二进制 文件
InputStream
FileInputStream 字节节点输入流
OutputStream
FileOutputStream 字节节点输出流
字符流 :一般用于传输 纯文本 文件
Reader
FileReader 字符节点输入流
Writer
FileWriter 字符节点输出流
PrintWriter 打印流
BufferedWriter 缓冲流
向 E:\test.txt中写入 "java2班"
// 1.创建FileWriter 字符节点输出流
// 如果文件不能存在,输出流会自动创建该文件
//
FileWriter fileWriter = null;
// BufferedWriter out = null;
PrintWriter out = null;
try {
// 第二个参数默认是false,表示每次输出都是覆盖方式,true代表追加
fileWriter = new FileWriter("E:\\test.txt",true);
// 高级流包装低级流,所以构造器参数就是低级流
// out = new BufferedWriter(fileWriter);
out = new PrintWriter(fileWriter,true);
// 低级流传输
// fileWriter.write("java2班 文件与流\r\n");
// 高级流
out.println("java2班 文件与流");
// 内容是写在管道里的,需要flush冲入文件
// out.flush();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("文件写入完毕...");
读取文件
FileReader fileReader = null;
try {
fileReader = new FileReader("E:\\test.txt");
// 缓存区 -- 暂存读取内容
char c[] = new char[10];
// 真正读取到的字符数
int num = fileReader.read(c);
while(num != -1){
if(num != 10){
for(int i = 0;i < num;i++){
System.out.print(c[i]);
}
}else{
for(char cc : c){
System.out.print(cc);
}
}
num = fileReader.read(c);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
FileReader fileReader = null;
Scanner scanner = null;
try {
fileReader = new FileReader("E:\\test.txt");
scanner = new Scanner(fileReader);
String str = scanner.nextLine();
while(str != null){
System.out.println(str);
str = scanner.nextLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (java.util.NoSuchElementException e){
}
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try {
fileReader = new FileReader("E:\\test.txt");
bufferedReader = new BufferedReader(fileReader);
String str = bufferedReader.readLine();
while(str != null){
System.out.println(str);
str = bufferedReader.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}