java通过键盘写入文件_java从键盘接收数据并输出到文件

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方法,一次从标准输入流中读取一行数据到字符串。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值