免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2040 | 回复: 0
打印 上一主题 下一主题

java从键盘接收数据并输出到文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-12 10:00 |只看该作者 |倒序浏览
java从键盘接收数据并输出到文件
    读取键盘输入并输出到文件的关键技术点如下:
    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,这样便可以使用BufferedReader的readLine方法,一次从标准输入流中读取一行数据到字符串。
[/url]


本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u2/66172/showart_1859888.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP