PrintWriter打印字符串流默认情况下不会刷新缓冲区,如果想将数据马上写出到目标设备中,必须手工调用刷新缓冲区的方法.
1、实例化打印流字符串流对象
printWriter=new PrintWriter("zf.bak");
//第二个参数表示是否开启自动刷新缓冲区的功能,如果启用,则 调用println、printf 或 format 方法将刷新输出缓冲区
printWriter=new PrintWriter(new FileOutputStream("wcf.bak"),true);
2、打印数据
printWriter.write("你好");
printWriter.print("世界!\r\n");
printWriter.println("凤凰涅槃");//自动刷新缓冲区
printWriter.printf("浴火重生!");//自动刷新缓冲区
//%s:代表字符串的占位符;%d:代表整数的占位符;%数字d:代表这个位置会占五个整数的位置,如果数字不够则在左边填充空格.
printWriter.printf("%5d只%5s重生!",5,"孙侯");//自动刷新缓冲区
3、关闭打印流
if(printWriter!=null){
printWriter.close();
//将打印流垃圾化
printWriter=null;
}
PrintStream进行输出数据时会自动刷新缓存区.
1.实例化打印流对象
printStream=new PrintStream("zf.bak");
2.执行写出操作
printStream.write("你好".getBytes());
printStream.print("世界\r\n");//在windows上的换行符:\r\n;在Unix或者Linux上的换行符是:\n
printStream.println("欢迎光临!");
printStream.println("祝您晚安!");
3、关闭打印流
if(printStream!=null){
printStream.close();
//将打印流垃圾化
printStream=null;
}
(String path=“hsj.bak”;)
1.实例化转换流对象并指定文件输出流对象,new
FileOutputStream(path):如果指定的文件不存在,则自动生成,如果存在则覆盖.
outputStreamWriter=new OutputStreamWriter(new FileOutputStream(path));
2、向文件中写入数据
outputStreamWriter.write("举头望明月,低头学Java!");
3、关闭流对象
outputStreamWriter.close();
outputStreamWriter=null;
(二)、使用转化流完成读取数据的功能
1.实例化字节流通向字符流的桥梁对象并关联上文件输入流对象,new FileInputStream(path):如果指定的文件不存在则报文件找不着异常.
inputStreamReader=new InputStreamReader(new FileInputStream(path));
2、将数据读取到字符数组中
char[] buffer=new char[10];
int len=0;
while((len=inputStreamReader.read(buffer))!=-1){
System.out.println(new String(buffer,0,len));
}
3、关闭流对象,在关闭流时只需要关闭最顶端的流(距离程序最近的流)即可
inputStreamReader.close();
//将流对象垃圾化
inputStreamReader=null;
接收用户键盘录入
1.实例化缓存字符输入流对象并指定转化流和键盘录入对应的输入流System.in
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
2、读取用户键盘录入的数据
String name=null;
int len=0;
do{
System.out.print("请输入的信息:");
//读取用户键盘录入的数据
name=bufferedReader.readLine();
len=name.length();
if(len==0){
break;
}
System.out.println("name="+name);
}while(true);