java 输入/输出 IO流(4)
来源:互联网 发布:e宠商城淘宝店 编辑:程序博客网 时间:2024/05/22 15:55
1、对于任何编程语言,处理数据的输入、输出操作都占有极其重要的地位。Java语言以流的形式进行数据的输入、输出的处理。按照操作类型,Java语言中的按流向分为输入流和输出流;按传输单位分为字节流和字符流;按功能还可以分为节点流和过滤流。
Java输入、输出I/O流指的是java如何实现与外界数据的交流;这里的输入、输出是针对JVM而言的;字节、字符是针对于输入、输出流处理数据而言的;节点流是负责数据源和程序之间建立连接,过滤流是用于给节点增加功能。
2、流的分类
java.io包中的类对应两类流,一类流直接从指定的位置(如磁盘文件或内存区域)读或写,这类流称为结点流(node stream),其它的流则称为过滤器(filters)。过滤器输入流往往是以其它输入流作为它的输入源,经过过滤或处理后再以新的输入流的形式提供给用户,过滤器输出流的原理也类似。
Java的常用输入、输出流
java.io包中的stream类根据它们操作对象的类型是字符还是字节可分为两大类: 字符流和字节流。
Java的字节流
InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
Java的字符流
Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先。
结合开始所说的输入/输出流 ,出现了个一小框架。
字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
3、打印输出字符流
package com.zsc.everyday;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;// 利用 FileReader 来读取文件本身public class FileReaderTest {public static void main(String[] args) throws IOException {FileReader fr = null ;try {fr = new FileReader("d:\\Hello.java");char[] cbuf = new char[512];int len ;while((len=fr.read(cbuf))!=-1){System.out.println(new String(cbuf,0,len));}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(fr!=null){fr.close();}}}}4、下面利用 FileInputStream 来实现输入,利用FileOutputStream 来实现输出,用以实现文件的复制:
代码:
package com.zsc.everyday;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.sql.Timestamp;//利用 FileInputStream 来实现输入,利用FileOutputStream 来实现输出,用以实现文件的复制public class FileCopy {public static void main(String[] args) throws Exception {FileInputStream fis = null ;FileOutputStream fos = null ;try {//创建字节输入流fis = new FileInputStream("d:\\JDK.6.Documentation.chm");//创建字节输出流fos = new FileOutputStream("d:\\download\\java help.chm");byte[] bbuf = new byte[1024];int len = 0 ;Timestamp start = new Timestamp(System.currentTimeMillis());System.out.println(start);//循环重输入流中读取数据while((len=fis.read(bbuf))!=-1){//每读取一次就将数据写入一次,读了多少就写多少fos.write(bbuf, 0, len);}Timestamp end = new Timestamp(System.currentTimeMillis());System.out.println(end);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{// 利用 finally 关闭输入输出流。finally 是程序必须执行的部分if(fis!=null){fis.close();}if(fos!=null){fos.close();}}}}运行结果:
2011-12-23 13:29:56.7082011-12-23 13:29:57.372
5、下面使用处理流来包装 OutputStream ,使用处理流后的输出流在输出时更加方便;
代码:
package com.zsc.everyday;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;//使用处理流来包装 OutputStream ,使用处理流后的输出流在输出时更加方便public class PrintStreamTest {public static void main(String[] args) {PrintStream ps = null ;try {//创建一个节点输出流:FileOutputStream FileOutputStream fos = new FileOutputStream("d:\\ss.java");// 一PrintStream 来包装FileOutputStream 输出流ps = new PrintStream(fos);//使用PrintStream 执行输出 ps.println("hello");//直接用PribtStream 输出对象ps.println(new PrintStreamTest());} catch (FileNotFoundException e) {e.printStackTrace();}finally{ps.close();}}}
注意:通常有一个规则,如果需要进行输入输出的内容是文本内容,则应该使用字符流,如果需要输入输出的是二进制流则应该考虑使用字节流。
- java 输入/输出 IO流(4)
- Java输出输入流(IO流 )
- 【Java | IO】输出输入流
- JAVA 输入/输出 IO
- JAVA IO 输入流 输出流笔记(一)
- JAVA IO 输入流 输出流 笔记(二)
- JAVA IO 输入流 输出流 笔记(二)
- JAVA IO流操作 输入、输出流。
- JAVA---IO流的输入与输出
- Java IO之文件输入、输出流
- java输入/输出(io)记录
- Java中的IO(输入与输出)
- IO流输出输入
- IO输出输入流
- java基础<IO输出与输入>--->IO流<字符流>
- java基础<IO输出与输入>--->IO流<字节流>
- java.io 输入与输出
- java学习笔记IO输入与输出——IO字符流(3)
- loadrunner 关联函数的高级应用
- Algorithms - 排序算法之二:快速排序
- PHP统计中英文字符个数的函数
- java多线程基本方法(3)
- PHP获取当前文件路径,上层目录路径
- java 输入/输出 IO流(4)
- 谈密码的管理方法
- 浅析 java5 新特性(5)
- java 新 IO(6)
- java 新特性 ----枚举(7)
- java 新特性 ----Annontation (8)
- checkGuard class
- 交通灯管理系统(9)
- 银行业务调度系统(10)