Java io 输入输出流(十二)

来源:互联网 发布:全球监控软件排行 编辑:程序博客网 时间:2024/04/28 10:03

十二、从键盘接收数据并输出到文件

    读取键盘输入并输出到文件的关键技术点如下:
    1
、键盘属于标准输入,通过System.in可以获得标准输入流
    2
、利用PrintWriter输出字符串到文件,它的flush方法将文件内容从内存缓冲区写进文件,在构造PrintWriter时,可以通过参数指定自动flush
   
实例演示 

 

package book.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

/** *//**
 * 
从标准输入流中读取数据,并存储到文件中
 * 
@author joe
 *
 */


public class CatStdinToFile ...{
    
    
public static boolean catStdinToFile(String fileName) ...{
        File file = 
new File(fileName);
        
//将数据按照文本输出到文件
        PrintWriter writer = null;
        BufferedReader in = 
null;
        
try ...{
            
//为输出文件建立一个写入器
            writer = new PrintWriter(new FileWriter(file));
            System.out.println("
请输入文件内容,输入quit结束:");
            
//BufferedReader包装标准输入流
            in = new BufferedReader(new InputStreamReader(System.in));
            String inputLine = 
null;
            
while (((inputLine = in.readLine()) != null) && (!inputLine.equals("quit"))) ...{
                writer.println(inputLine);
            }
            
            
//如果采用new PrintWriter(new FileWriter(file, true)则会自动flush
            writer.flush();
            writer.close();
            
return true;
        } 
catch (IOException e) ...{
            System.out.println(e.getMessage());
            
return false;
        } 
finally ...{
            
if (in != null...{
                
try ...{
                    in.close();
                } 
catch (IOException e) ...{
                    e.printStackTrace();
                }
            }
        }
    }
    
    
public static void main (String[] args) ...{
        String fileName = "d:/work/temp/temp.java";
        CatStdinToFile.catStdinToFile(fileName);
        System.out.println();
        System.out.println("
输出文件的内容:");
        ReadFromFile.readFileByLines(fileName);
    }

}

 

输出结果:
请输入文件内容,输入quit结束:
hello
java
我喜欢
quit

输出文件的内容:
以行为单位读取文件内容,一次读取一整行:
line:1: hello
line:2: java
line:3:
我喜欢

源码分析:
   
键盘是标准输入流,在java中用System.in表示,首先将System.in封装成一个字符输入流InputStreamReader,再用BufferedReader封装InputStreamReader,这样便可以使用BufferedReaderreadLine方法,一次从标准输入流中读取一行数据到字符串。

 

 
原创粉丝点击