【Java】打印流与缓冲区读者完成输入与输出到文件操作
来源:互联网 发布:楼盘销售软件 编辑:程序博客网 时间:2024/06/06 01:16
这部分看书上概念,变量声明也多得要命,比较难以看懂,
就算你按照书上的程序运行一次你也未必清楚再干什么。
如果让你自己写一个让用户输入字符,再把这个字符输出到文件,对于初学Java的人来说,可能有些难度
一、基本目标
用户输入字符,如果输入“#”能够停止输入,其余字符则输出到工程目录下的文件a.txt
程序跑完打开工程目录则可以发现a.txt
打开之后发现就是我们输入的内容:
二、制作过程
1、以下的程序,用到输入输出流,必须使用到java.io.*这个包,然后在主函数抛出IO异常
2、缓冲区读者从输入流读取数据,且这个输入流是系统默认输入流,也就是用户在控制台的输入
也就是用户在控制台的输入的东西会先到缓冲区,如果不放到缓冲区,只能读到1个字符,而不是一堆字符
下面while循环中的br.readLine()这个方法是从缓冲区读出一行字符放到s这个字符串里面,再判断这个字符串s是否为null与#,为null与#则跳出,判断s是否为#,千万不可以用s=="#",这是在比对s与#的存储地址是否相等,而不是内容相等,比较字符串内容相等,必须用字符串的equals()方法。
不可以用br.readLine()用来作判断条件,又作为输出对象,
否则系统读到这个方法,则执行一个这个方法,
就会发现跳行现象
3、输出到文件部分,是先声明一个打印流,且这个打印流是打印到文件写者,这个文件写者是对a.txt输出,而且是在a.txt的文件结尾处打印数据,如果把不要第二个参数,或者把第二个参数设置为false,那么文件写者每次输出数据到a.txt,会从头开始,覆盖原来的内容
while循环中的打印流pw使用pw.println()方法,对其打印的对象输出s这个字符串,其中被打印流打印的对象已经在上面初始化打印流的时候声明了,打印到输出到a.txt的文件写者处
4、最后做完所有事,记得人走带门,关闭这个流
import java.io.*;public class RWER {public static void main(String args[]) throws IOException{String s;System.out.println("输入到文件,结束,请输入“#”");BufferedReader br=new BufferedReader(new InputStreamReader(System.in));PrintWriter pw=new PrintWriter(new FileWriter("a.txt",true));while((s=br.readLine())!=null){System.out.println("你输入了:"+s);if(s.equals("#"))break;pw.println(s);}pw.close();br.close();}}
- 【Java】打印流与缓冲区读者完成输入与输出到文件操作
- java IO操作与字节流(三)文件输入流与输出流
- IO输入与输出--File打印流
- Java中的流与文件:文本的输入与输出
- java流式输入与输出与文件处理
- 输入与输出缓冲区的概念
- 输入 /输出 缓冲区 与 数组的常识
- Cpp Primer<<学习IO标准库--输出缓冲区的管理、文件输入与输出_6
- java输入与输出流
- 文件输入与输出
- Java输入与输出
- java输入与输出
- java 输入与输出
- JAVA输入与输出
- java流与缓冲区
- cin 与输入缓冲区
- fork与输出缓冲区
- 文件的输入与输出
- eclipse中双击一个变量,文件中所有这个变量都会变成黄色,现在变不了了的问题。
- 中小企业如何选择网络营销平台
- VMware mount共享文件夹到指定位置
- apktool简单反编译
- 使用OpenSSL生成证书
- 【Java】打印流与缓冲区读者完成输入与输出到文件操作
- 输入框字数限制+动态提示:10个汉字或20个字符的问题
- 一、Shell简介:什么是Shell,Shell命令的两种执行方式
- linux grep命令
- Unity3d游戏开发之如何使用烘焙贴图(二)
- f在工作中遇到的一些问题及总结(f的第一篇博客)
- How to add a Custom Pull to Refresh in your iOS Application
- 李彦宏连续三年对话极客 都说了什么?
- win7无线网络一直转圈(但是可以上网)