IO流
输入流(Input):从文件中读数据
输出流(Output):把数据写进文件
面试题:给你一个(.txt)文件,用java把里面的数据读出来?
package mylove.home.demo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class DemoIO {
public static void main(String args[]) {
readFile();
writeFile();
}
/**
* 读入TXT文件
*/
public static void readFile() {
String pathname = "D:\\aopp.txt"; // 这里是绝对路径,绝对路径或相对路径都可以,写入文件时演示相对路径,读取以上路径的aopp.txt文件
//防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw;
//不关闭文件会导致资源的泄露,读写文件都同理
try (FileReader reader = new FileReader(pathname);//文件输入流
BufferedReader br = new BufferedReader(reader)) //缓冲输入流// 建立一个对象,它把文件内容转成计算机能读懂的语言
{
String line;
//网友推荐更加简洁的写法
while ((line = br.readLine()) != null) {
// 一次读入一行数据
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();//打印堆栈
}
}
/**
* 写出到TXT文件,输出流
*/
public static void writeFile() {
try {
File writeName = new File("D:\\aopp.txt"); // 相对路径,如果没有则要建立一个新的aopp.txt文件
writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
try (FileWriter writer = new FileWriter(writeName);//文件输出流
BufferedWriter out = new BufferedWriter(writer) //缓冲输出流
) {
out.write("红红火火恍恍惚惚\r\n"); // \r\n即为换行
out.write("我是你大爷\r\n"); // \r\n即为换行
out.flush(); // 把缓存区内容压入文件
}
} catch (IOException e) {
e.printStackTrace();
}
}
}