package IO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;
/**
* 简易记事本
* 程序启动后,要求用户输入一个文件名,然后对该文件进行写操作。
* 之后用户在控制台输入的每行字符串都按行写入到该文件,
* 当用户输入“exit”时程序退出。
* 使用流连接形式创建PrintWriter
* PrintWriter在创建时若第一个参数为流,那么就支持第二个参数,该参数为boolean类型
* 若值为true 时具有自动行刷新功能
* 即:每当使用println方法后会自动flush 需要注意,频繁fulsh 会提高实际IO次数;
* 这样会降低写效率,但是会提高写出数据的即时性
* @author 清风已来
*
*/
public class Noto {
public static void main(String[] args) throws Exception {
System.out.println("请输入一个文件名");
Scanner scan =new Scanner(System.in);
String fileName =scan.next();
FileOutputStream fos= new FileOutputStream(fileName);//fileName 文件名
OutputStreamWriter osw =new OutputStreamWriter(fos,"GBK");//转换流
PrintWriter pw =new PrintWriter(osw,true);//字符输出缓冲流//true 自动行刷新
System.out.println("请输入你的文件");
//String str= scan.next();
while(true) {
String line =scan.nextLine();
//pw.println(str);
if("exit".equals(line)) {
break;
}
pw.println(line);//此处需要对应 行刷新 不可以写 print不然没有效果
}
System.out.println("再见");
pw.close();
}
}