黑马程序员——IO流
来源:互联网 发布:仙掌游戏 倒闭 知乎 编辑:程序博客网 时间:2024/04/30 11:16
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
IO流
流即数据的流动,从某一个设备流动到另外一个设备中的过程。Java中对流的输入输出(IO)操作主要有两种,对字节流和字符流的输入输出操作。
IO流体系
|─字符流 JDK1.1
| |─Writer 写入流
| | |─PrintWriter 字符打印流
| | |─StringWriter 字符串写入流
| | |─BufferedWriter 字符写入流缓冲区
| | |─CharArrayWriter 字符数组写入流缓冲区
| | └─OutputStreamWriter 字符转换字节流
| | └-FileWriter 字符文件写入流
| |
| └─Reader 读取流
| |-StringReader 字符串读取流
| |-BufferedReader 字符读取流缓冲区
| | └─LineNumberReader 跟踪行号的缓冲字符输入流
| |-CharArrayReader 字符数组读取流缓冲区
| └─InputStreamReader 字节转换字符流
| └─FileReader 字符文件读取流
|
|─字节流 JDK1.0
| |─InputStream 输入流
| | |─FileInputStream 文件输入流
| | |─PipedInputStream 管道输入流
| | |─ObjectInputStream 对象输入流
| | |─SequenceInputStream 合并输入并流
| | |─ByteArrayInputStream 字节数组输入流缓冲区
| | └─FilterInputStream
| | |─DataInputStream 数据输入流
| | └─BufferedInputStream 字节输入流缓冲区
| |
| └─OutputStream 输出流
| |─FileOutputStream 文件输出流
| |─PipedOutputStream 管道输出流
| |─ObjectOutputStream 对象输出流
| |─ByteArrayOutputStream 字节数组输出流缓冲区
| └─FilterOutputStream
| |─DataOutputStream 数据字节输出流
| └─BufferedOutputStream 字节输出流缓冲区
└─File 类
IO流实例
//一个通过IO复制硬盘文件的例子 class CopyTest{ public static void main(String[] args) throws IOException{ //创建读取流和写入流对象引用 BufferedReader bufr = null; BufferedWriter bufw = null; try{ //创建对象实体,并用缓冲流修饰 bufr = new BufferedReader(new FileReader("1.txt")); bufw = new BufferedWriter(new FileWriter("2.txt")); //读取流中的行字符串存储在line中,直到流中没有数据,会返回null String line = null; while((line=bufr.readLine())!=null){ bufw.write(line); //读一行写入一行到缓冲区中 bufw.newLine(); //加入换行标记,因为readLine在读取的时候是会去掉换行标记的 bufw.flush(); //把缓冲区内的数据刷新到到硬盘文件里 } } catch (IOException e){ throw new RuntimeException("读取失败"); } finally{ try{ if(bufr!=null) //对bufr进行非null判断是因为如果在最开始建立bufr对象的时候建立不起来,//下面的bufr.close()会发生空指针异常,因为没有bufr这个对象 bufr.close(); //关闭读取流资源 } catch (IOException e){ throw new RuntimeException("读取流关闭失败"); } try{ if(bufw!=null) //道理同上 bufw.close(); } catch (IOException e){ throw new RuntimeException("写入流关闭失败"); } } } }
//把键盘录入的字符串字母转成大写,并以UTF-8的编码形式写入硬盘文件class IOTest{ public static void main(String[] args) throws IOException{ BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out2.txt"),"UTF-8")); //UTF-8将字符编码成字节,一个中文占3个字节//GBK和GB2312编码表就占两个字节,ISO8859-1西欧编码表,一个字节 String line =null; while((line=bufr.readLine())!=null){ if("over".equals(line)) //如果输入over,就结束循环 break; bufw.write(line.toUpperCase()); bufw.newLine(); //换行,如果用PrintWriter打印流的话就不用加newLine,还能自动刷新 bufw.flush(); } bufw.close(); } }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
- 黑马程序员—io流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员 — IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO
- 黑马程序员———IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——java IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- android数据库操作(一)
- 事情
- windows下 php 导出数据到EXCEL表中
- sourceinsight 语法不显示高亮 symble无法跳转 不解析
- Redis系统性介绍
- 黑马程序员——IO流
- href超链接,打开新标签页
- ASP.NET中DataTable与DataSet之间的转换
- CentOS-6安装使用mongodb
- 僵尸进程
- Weblogic12c (12.1.2) 兼容性问题汇总
- it笔试题目(性格测评)
- ubuntu环境下android应用真机调试故障及解决方案
- 用HTML5 Canvas画的时钟