将键盘录入的内容写入到一个文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufTest {
public static void main(String[] args) {
/**
* 创建一个文本,并且通过控制台写入文本
* 步骤:
* 1.首先我们要将控制台输入的二进制转换成字符,然后通过BufferedReader读入缓冲区
* 2.再通过BufferedReader的ReadLine()方法将缓冲区的内容读取内存
* 3.创建BufferedWriter对象,将内存里的字符通过BufferedWriter的write()方法写入BufferedWriter缓冲区
* 4.最后通过BufferedWriter的flush()方法将缓冲区的内容刷新到指定文本
* 5.一定要记得关闭输入流和输出流,以便释放系统资源(系统不会自动释放堆里的资源所以我们要手动释放)
*/
BufferedReader bufR = null;
BufferedWriter bufW = null;
try {
//将输入的字节流转换成字符流存入缓冲区
//这里我们要注意 让缓冲区和对应的流关联
//System.in的返回值是InputStream类型
bufR = new BufferedReader(new InputStreamReader(System.in));
//将a.txt文件的内容输出到控制台
//bufW = new BufferedWriter(new OutputStreamWriter(System.out));
//将键盘录入的数据写到a.txt文件里
bufW = new BufferedWriter(new FileWriter("a.txt"));
String content = null;
//BufferedReader的readLine()方法是读取一行的意思,返回的是一个String类型的,不带换行符
while((content = bufR.readLine()) != null){
//System.out.println(content);
//忽略大小写,如果输入over,结束程序运行
if(content.equalsIgnoreCase("over")){
break;
}
//以下这两个方法都能实现换行
//bufW.write(content + System.getProperty("line.separator"));
bufW.write(content);
bufW.newLine();//写入一个换行符
}
bufW.flush();//
} catch (IOException e) {
e.printStackTrace();
throw new FileWriterIoException("创建流错误!");
}finally{
try {
//关闭流之前,要判断一下该流是否为null,避免空指针错误
if(bufW != null){
bufW.close();
}
if(bufR != null){
bufR.close();
}
} catch (IOException e) {
e.printStrackTrace();
throw new CloseStreamException("关闭流异常");
}
}
}
}
浙公网安备 33010602011771号