将键盘录入的内容写入到一个文件

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("关闭流异常"); } } } }

  

posted @ 2014-03-04 10:30  lxricecream  阅读(579)  评论(0)    收藏  举报