Posted on 2009-05-24 21:35
啥都寫點 閱讀(362)
評論(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);
}
}
--
學海無涯