Posted on 2009-05-24 21:35
啥都写点 阅读(331)
评论(0) 编辑 收藏 所属分类:
J2SE
关键技术:
- 键盘属于标准输入,通过System.in可以获得标准输入流
- 利用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;
/**
* 从标准输入流中读取数据,并存储到文件中
*/
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 = "C:/temp/temp.java";
CatStdinToFile.catStdinToFile(fileName);
System.out.println();
System.out.println("输出文件的内容:");
ReadFromFile.readFileByLines(fileName);
}
}
-- 学海无涯