io补充
来源:互联网 发布:gre issue 知乎 编辑:程序博客网 时间:2024/05/23 00:03
//1. 这是从键盘读入一行数据,返回的是一个字符串 BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a line:"); System.out.println(stdin.readLine()); //2. 这是从文件中逐行读入数据 BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java")); String s, s2 = new String(); while((s = in.readLine())!= null) s2 += s + "\n"; in.close(); //3. 这是从一个字符串中逐个读入字节 StringReader in1 = new StringReader(s2); int c; while((c = in1.read()) != -1) System.out.print((char)c); //4. 这是将一个字符串写入文件 try { BufferedReader in2 = new BufferedReader(new StringReader(s2)); PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out"))); int lineCount = 1; while((s = in2.readLine()) != null ) out1.println(lineCount++ + ": " + s); out1.close(); } catch(EOFException e) { System.err.println("End of stream"); }对于上面的例子,需要说明的有以下几点:
1. BufferedReader是Reader的一个子类,它具有缓冲的作用,避免了频繁的从物理设备中读取信息。它有以下两个构造函数:
BufferedReader(Reader in)
BufferedReader(Reader in, int sz)
这里的sz是指定缓冲区的大小。
它的基本方法:
void close() //关闭流
void mark(int readAheadLimit) //标记当前位置
boolean markSupported() //是否支持标记
int read() //继承自Reader的基本方法
int read(char[] cbuf, int off, int len) //继承自Reader的基本方法
String readLine() //读取一行内容并以字符串形式返回
boolean ready() //判断流是否已经做好读入的准备
void reset() //重设到最近的一个标记
long skip(long n) //跳过指定个数的字符读取
2. InputStreamReader是InputStream和Reader之间的桥梁,由于System.in是字节流,需要用它来包装之后变为字符流供给BufferedReader使用。
3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")));
这句话体现了Java输入输出系统的一个特点,为了达到某个目的,需要包装好几层。首先,输出目的地是文件IODemo.out,所以最内层包装的是 FileWriter,建立一个输出文件流,接下来,我们希望这个流是缓冲的,所以用BufferedWriter来包装它以达到目的,最后,我们需要格式化输出结果,于是将PrintWriter包在最外层。
Java提供了这样一个功能,将标准的输入输出流转向,也就是说,我们可以将某个其他的流设为标准输入或输出流
阅读全文
0 0
- io补充
- IO补充
- io补充
- javaSE-IO补充-编码补充
- IO流知识补充
- linux io调度补充
- IO流总结补充
- IO流4(补充
- javaday16-IO(补充)
- javaSE-IO补充 File类
- javaSE-IO补充 Properties类
- Java培训-IO流补充
- 20---IO学习笔记(补充)
- Python 文件IO操作的补充说明
- 黑马程序员-IO流的补充
- Java day10 IO FileReader,Properties 待补充
- java.se.io.14.文字补充
- JAVA-14.1-IO流之知识点补充
- 表单姓名邮箱非空验证
- iOS 火星坐标系 与 地球坐标系
- UI连线功能
- laravel简单事件
- 数据库持久化中的读写性能原理分析---基于存储引擎和索引原理
- io补充
- 正则表达式
- android 简单ijkplay
- python3.x 纪念写的第一个爬虫
- textarea显示全部内容支持高度自适应
- MFC中ListCtrl的subItem0添加图标
- post请求拉一个类
- java 中几种常用数据结构
- unity 关闭弹出android 提示框