java输入输出流总结.doc

上传人:scccc 文档编号:12635121 上传时间:2021-12-05 格式:DOC 页数:5 大小:27.50KB
返回 下载 相关 举报
java输入输出流总结.doc_第1页
第1页 / 共5页
java输入输出流总结.doc_第2页
第2页 / 共5页
java输入输出流总结.doc_第3页
第3页 / 共5页
java输入输出流总结.doc_第4页
第4页 / 共5页
java输入输出流总结.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《java输入输出流总结.doc》由会员分享,可在线阅读,更多相关《java输入输出流总结.doc(5页珍藏版)》请在三一文库上搜索。

1、一、数据流的基本概念       流一般分为输入流(Input Stream)和输出流(Output Stream)两类,但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个数人流,而屏幕则只是一个输出流。      java的标准数据流:标准输入输出指在字符方式下(如DOS),程序与系统进行交互的方式,分为三种:       标准输入studin,

2、对象是键盘。       标准输出stdout,对象是屏幕。       标准错误输出stderr,对象也是屏幕。二、java.io包中的数据流和文件类       字节流:从InputStream和OutputStream派生出来的一系列类。这类流以字节(byte)为基本处理单位。          InputStream、OutputStream

3、0;         、          PipedInputStream、PipedOutputStream          ByteArrayInputStream、ByteArrayOutputStream          FilterInputStream、FilterOut

4、putStream          DataInputStream、DataOutputStream          BufferedInputStream、BufferedOutputStream        字符流:从Reader和Writer派生出的一系列类,这类流以16位的Unicode码表示的字符为基本处理单位。 

5、0;      Reader、Writer        InputStreamReader、OutputStreamWriter        、        CharArrayReader、CharArrayWriter         PipedReader、PipedWriter

6、         FilterReader、FilterWriter         BufferedReader、BufferedWriter         StringReader、StringWriter三、字节流方法InputStream 和OutputStream    read():从流中读入数据   skip():跳过流中若干字节数   av

7、ailable():返回流中可用字节数    mark():在流中标记一个位置    reset():返回标记过得位置   markSupport():是否支持标记和复位操作    close():关闭流    int read() :从输入流中读一个字节,形成一个0255之间的整数返回(是一个抽象方法)。      int read(byte b) :读多个字节到数组中。     in

8、t read(byte b, int off, int len):从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取得字节数。     write(int b) :将一个整数输出到流中(只输出低位字节,抽象)    write(byte b) :将字节数组中的数据输出到流中    write(byte b, int off, int len) :将数组b中从off指定的位置开始,长度为len的数据输出到流中    flush():刷空输出流,并将

9、缓冲区中的数据强制送出     close():关闭流注:进行I/O操作时可能会产生I/O例外,属于非运行时例外,应该在程序中处理。如:型, EOFException, IOException四、文件操作类的方法File类File类声明如下:public class Object implements Serializable,Comparable构造方法:public pathname)public patent,String child)public patent,String child)文件名的处理    Strin

10、g getName( ); /得到一个文件的名称(不包括路径)    String getPath( ); /得到一个文件的路径名    String getAbsolutePath( );/得到一个文件的绝对路径名     String getParent( ); /得到一个文件的上一级目录名    String renameTo(); /将当前文件名更名为给定文件的完整路径文件属性测试    boolean exists( ); /测试当前F

11、ile对象所指示的文件是否存在    boolean canWrite( );/测试当前文件是否可写     boolean canRead( );/测试当前文件是否可读    boolean isFile( ); /测试当前文件是否是文件(不是目录)    boolean isDirectory( ); /测试当前文件是否是目录普通文件信息和工具     long lastModified( );/得到文件最近一次修改的时间

12、    long length( ); /得到文件的长度,以字节为单位     boolean delete( ); /删除当前文件目录操作    boolean mkdir( ); /根据当前对象生成一个由该对象指定的路径    String list( ); /列出当前目录下的文件文件过滤器       类FilterInputStream和FilterOutputStream分别对其他输入/输出流进行

13、特殊处理,它们在读/写数据的同时可以对数据进行特殊处理。另外还提供了同步机制,使得某一时刻只有一个线程可以访问一个输入/输出流。        类FilterInputStream和FilterOutputStream分别重写了父类InputStream和OutputStream的所有方法,同时,它们的子类也应该重写它们的方法以满足特定的需要     要使用过滤流,首先必须把它连接到某个输入/输出流上,通常在构造方法的参数中指定所要连接的流:   

14、;  FilterInputStream(InputStream in);     FilterOutputStream(OutputStream out);注:这两个类是抽象类,构造方法也是保护方法       类BufferedInputStream和BufferedOutputStream实现了带缓冲的过滤流,它提供了缓冲机制,把任意的I/O流“捆绑”到缓冲流上,可以提高读写效率     在初始化时,除了要指定

15、所连接的I/O流之外,还可以指定缓冲区的大小。缺省大小的缓冲区适合于通常的情形;最优的缓冲区大小常依赖于主机操作系统、可使用的内存空间以及机器的配置等;一般缓冲区的大小为内存页或磁盘块等地整数倍,如8912字节或更小。     BufferedInputStream(InputStream in, int size)      BufferedOutputStream(OutputStream out, int size)文件对话框    随机文件操作于InputS

16、tream 和OutputStream 来说,它们的实例都是顺序访问流,也就是说,只能对文件进行顺序地读/写。随机访问文件则允许对文件内容进行随机读/写。在java中,类 RandomAccessFile 提供了随机访问文件的方法。类RandomAccessFile的声明为:public class RandomAccess Object implements DataInput, DataOutput      File:以文件路径名的形式代表一个文件     :代表一个打开文件的文件描述&#

17、160;     & :用于列出满足条件的文件     ( fnf)      ( ff)     ( fnf)      & :顺序读文件      & :顺序写文件     RandomAccessFile:提供对文件的随机访问支持

18、类RandomAccessFile则允许对文件内容同时完成读和写操作,它直接继承Object,并且同时实现了接口DataInput和DataOutput,提供了支持随机文件操作的方法 DataInput和DataOutput中的方法     readInt(), writeDouble()     int skipBytes(int n):将指针乡下移动若干字节    length():返回文件长度    long get():返回指针当前位置&

19、#160;    void seek(long pos):将指针调到所需位置     void setLength(long newLength):设定文件长度构造方法:RandomAccess file, String mode)      RandomAccess name, String mode)mode 的取值     “r” 只读. 任何写操作都将抛出IOException。   &#

20、160; “rw” 读写. 文件不存在时会创建该文件,文件存在时,原文件内容不变,通过写操作改变文件内容。      “rws” 同步读写. 等同于读写,但是任何协操作的内容都被直接写入物理文件,包括文件内容和文件属性。     “rwd” 数据同步读写. 等同于读写,但任何内容写操作都直接写到物理文件,对文件属性内容的修改不是这样。五、字符流的方法Reader类和Writer类         在JDK1.1之前,

21、java.io包中的流只有普通的字节流(以byte为基本处理单位的流),这种流对于以16位的Unicode码表示的字符流处理很不方便。从JDK1.1开始, java.io包中加入了专门用于字符流处理的类,它们是以Reader和Writer为基础派生的一系列类同类InputStream和OutputStream一样,Reader和Writer也是抽象类,只提供了一系列用于字符流处理的接口。它们的方法与类InputStream和OutputStream类似,只不过其中的参数换成字符或字符数组Reader类     void close() 

22、;    void mark(int readAheadLimit)     boolean markSupported() :     int read()      int read(char cbuf)      int read(char cbuf, int off, int len)      bo

23、olean ready()      void reset()      long skip(long n)Writer类     void close()      void flush()      void write(char cbuf)      void write(char cbuf,

24、 int off, int len)      void write(int c)      void write(String str)      void write(String str, int off, int len) Java中Scanner的用法 Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.Scanner reader=new Scanner(System.in); 然后reader对象调用下列方

25、法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot() 上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。下面是一个实例:import java.util.*;public class Examplepubl

26、ic static void main(String args)System.out.println("请输入若干个数,每输入一个数用回车确认");System.out.println("最后输入一个非数字结束输入操作");Scanner reader=new Scanner(System.in);double sum=0;int m=0;while(reader.hasNextDouble()    double x=reader.nextDouble();    m=m+1; &#

27、160;  sum=sum+x;System.out.printf("%d个数的和为%f/n",m,sum);System.out.printf("%d个数的平均值是%f/n",m,sum/m);JAVA的三种标准输入方法例子 Simport java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class SimpleIO public static void main(String args)throws Excepti

28、onbyte b = new byte50;int num = System.in.read(b);/用普通的System.in.read()读取;String sb = new String(b,0,num);System.out.println(sb);BufferedReader br = new BufferedReader(new InputStreamReader(System.in);/用缓冲流存放读取进来的String sbr = br.readLine();System.out.println(sbr);Scanner scan = new Scanner(System.in);/用扫描流对输入的数据 进行读取并进行咱存放。if(scan.hasNext()String ss = scan.next();System.out.println(ss);      5 / 5文档可自由编辑打印

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1