小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java中輸入輸出總結(jié)

 sam225 2010-05-04
一、數(shù)據(jù)流的基本概念

       流一般分為輸入流(Input Stream)和輸出流(Output Stream)兩類,但這種劃分并不是絕對(duì)的。比如一個(gè)文件,當(dāng)向其中寫數(shù)據(jù)時(shí),它就是一個(gè)輸出流;當(dāng)從其中讀取數(shù)據(jù)時(shí),它就是一個(gè)輸入流。當(dāng)然,鍵盤只是一個(gè)數(shù)人流,而屏幕則只是一個(gè)輸出流。
      java的標(biāo)準(zhǔn)數(shù)據(jù)流:標(biāo)準(zhǔn)輸入輸出指在字符方式下(如DOS),程序與系統(tǒng)進(jìn)行交互的方式,分為三種:
       標(biāo)準(zhǔn)輸入studin,對(duì)象是鍵盤。
       標(biāo)準(zhǔn)輸出stdout,對(duì)象是屏幕。
       標(biāo)準(zhǔn)錯(cuò)誤輸出stderr,對(duì)象也是屏幕。

二、java.io包中的數(shù)據(jù)流和文件類

       字節(jié)流:從InputStream和OutputStream派生出來(lái)的一系列類。這類流以字節(jié)(byte)為基本處理單位。
          InputStream、OutputStream
          FileInputStream、FileOutputStream
          PipedInputStream、PipedOutputStream
          ByteArrayInputStream、ByteArrayOutputStream
          FilterInputStream、FilterOutputStream
          DataInputStream、DataOutputStream
          BufferedInputStream、BufferedOutputStream
        字符流:從Reader和Writer派生出的一系列類,這類流以16位的Unicode碼表示的字符為基本處理單位。
        Reader、Writer
        InputStreamReader、OutputStreamWriter
        FileReader、FileWriter
        CharArrayReader、CharArrayWriter
         PipedReader、PipedWriter
         FilterReader、FilterWriter
         BufferedReader、BufferedWriter
         StringReader、StringWriter

三、字節(jié)流方法

InputStream 和OutputStream
   read():從流中讀入數(shù)據(jù)
   skip():跳過(guò)流中若干字節(jié)數(shù)
   available():返回流中可用字節(jié)數(shù)
    mark():在流中標(biāo)記一個(gè)位置
    reset():返回標(biāo)記過(guò)得位置
   markSupport():是否支持標(biāo)記和復(fù)位操作
    close():關(guān)閉流
    int read() :從輸入流中讀一個(gè)字節(jié),形成一個(gè)0~255之間的整數(shù)返回(是一個(gè)抽象方法)。
      int read(byte b[]) :讀多個(gè)字節(jié)到數(shù)組中。
     int read(byte b[], int off, int len):從輸入流中讀取長(zhǎng)度為len的數(shù)據(jù),寫入數(shù)組b中從索引off開(kāi)始的位置,并返回讀取得字節(jié)數(shù)。
     write(int b) :將一個(gè)整數(shù)輸出到流中(只輸出低位字節(jié),抽象)
    write(byte b[]) :將字節(jié)數(shù)組中的數(shù)據(jù)輸出到流中
    write(byte b[], int off, int len) :將數(shù)組b中從off指定的位置開(kāi)始,長(zhǎng)度為len的數(shù)據(jù)輸出到流中
    flush():刷空輸出流,并將緩沖區(qū)中的數(shù)據(jù)強(qiáng)制送出
     close():關(guān)閉流

注:進(jìn)行I/O操作時(shí)可能會(huì)產(chǎn)生I/O例外,屬于非運(yùn)行時(shí)例外,應(yīng)該在程序中處理。如:型FileNotFoundException, EOFException, IOException

四、文件操作類的方法

File類
File類聲明如下:
public class File ectends Object implements Serializable,Comparable
構(gòu)造方法:
public File(String pathname)
public File(File patent,String child)
public File(String patent,String child)
文件名的處理
    String getName( ); //得到一個(gè)文件的名稱(不包括路徑)
    String getPath( ); //得到一個(gè)文件的路徑名
    String getAbsolutePath( );//得到一個(gè)文件的絕對(duì)路徑名
     String getParent( ); //得到一個(gè)文件的上一級(jí)目錄名
    String renameTo(File newName); //將當(dāng)前文件名更名為給定文件的完整路徑
文件屬性測(cè)試
    boolean exists( ); //測(cè)試當(dāng)前File對(duì)象所指示的文件是否存在
    boolean canWrite( );//測(cè)試當(dāng)前文件是否可寫
     boolean canRead( );//測(cè)試當(dāng)前文件是否可讀
    boolean isFile( ); //測(cè)試當(dāng)前文件是否是文件(不是目錄)
    boolean isDirectory( ); //測(cè)試當(dāng)前文件是否是目錄
普通文件信息和工具
     long lastModified( );//得到文件最近一次修改的時(shí)間
    long length( ); //得到文件的長(zhǎng)度,以字節(jié)為單位
     boolean delete( ); //刪除當(dāng)前文件
目錄操作
    boolean mkdir( ); //根據(jù)當(dāng)前對(duì)象生成一個(gè)由該對(duì)象指定的路徑
    String list( ); //列出當(dāng)前目錄下的文件
文件過(guò)濾器
       類FilterInputStream和FilterOutputStream分別對(duì)其他輸入/輸出流進(jìn)行特殊處理,它們?cè)谧x/寫數(shù)據(jù)的同時(shí)可以對(duì)數(shù)據(jù)進(jìn)行特殊處理。另外還提供了同步機(jī)制,使得某一時(shí)刻只有一個(gè)線程可以訪問(wèn)一個(gè)輸入/輸出流。
        類FilterInputStream和FilterOutputStream分別重寫了父類InputStream和OutputStream的所有方法,同時(shí),它們的子類也應(yīng)該重寫它們的方法以滿足特定的需要
•     要使用過(guò)濾流,首先必須把它連接到某個(gè)輸入/輸出流上,通常在構(gòu)造方法的參數(shù)中指定所要連接的流:
–     FilterInputStream(InputStream in);
–     FilterOutputStream(OutputStream out);
注:這兩個(gè)類是抽象類,構(gòu)造方法也是保護(hù)方法
       類BufferedInputStream和BufferedOutputStream實(shí)現(xiàn)了帶緩沖的過(guò)濾流,它提供了緩沖機(jī)制,把任意的I/O流“捆綁”到緩沖流上,可以提高讀寫效率
•     在初始化時(shí),除了要指定所連接的I/O流之外,還可以指定緩沖區(qū)的大小。缺省大小的緩沖區(qū)適合于通常的情形;最優(yōu)的緩沖區(qū)大小常依賴于主機(jī)操作系統(tǒng)、可使用的內(nèi)存空間以及機(jī)器的配置等;一般緩沖區(qū)的大小為內(nèi)存頁(yè)或磁盤塊等地整數(shù)倍,如8912字節(jié)或更小。
–     BufferedInputStream(InputStream in[, int size])
–     BufferedOutputStream(OutputStream out[, int size])
文件對(duì)話框
    隨機(jī)文件操作
于InputStream 和OutputStream 來(lái)說(shuō),它們的實(shí)例都是順序訪問(wèn)流,也就是說(shuō),只能對(duì)文件進(jìn)行順序地讀/寫。隨機(jī)訪問(wèn)文件則允許對(duì)文件內(nèi)容進(jìn)行隨機(jī)讀/寫。在java中,類 RandomAccessFile 提供了隨機(jī)訪問(wèn)文件的方法。類RandomAccessFile的聲明為:
public class RandomAccessFile extends Object implements DataInput, DataOutput
     File:以文件路徑名的形式代表一個(gè)文件
     FileDescriptor:代表一個(gè)打開(kāi)文件的文件描述
     FileFilter & FilenameFilter:用于列出滿足條件的文件
     File.list(FilenameFilter fnf)
     File.listFiles(FileFilter ff)
     FileDialog.setFilenameFilter(FilenameFilter fnf)
•     FileInputStream & FileReader:順序讀文件
•     FileOutputStream & FileWriter:順序?qū)懳募?br>•     RandomAccessFile:提供對(duì)文件的隨機(jī)訪問(wèn)支持
類RandomAccessFile則允許對(duì)文件內(nèi)容同時(shí)完成讀和寫操作,它直接繼承Object,并且同時(shí)實(shí)現(xiàn)了接口DataInput和DataOutput,提供了支持隨機(jī)文件操作的方法
 DataInput和DataOutput中的方法
•     readInt(), writeDouble()…
     int skipBytes(int n):將指針鄉(xiāng)下移動(dòng)若干字節(jié)
    length():返回文件長(zhǎng)度
    long getFilePointer():返回指針當(dāng)前位置
     void seek(long pos):將指針調(diào)到所需位置
     void setLength(long newLength):設(shè)定文件長(zhǎng)度
構(gòu)造方法:
RandomAccessFile(File file, String mode)
     RandomAccessFile(String name, String mode)
mode 的取值
–     “r” 只讀. 任何寫操作都將拋出IOException。
–     “rw” 讀寫. 文件不存在時(shí)會(huì)創(chuàng)建該文件,文件存在時(shí),原文件內(nèi)容不變,通過(guò)寫操作改變文件內(nèi)容。
–     “rws” 同步讀寫. 等同于讀寫,但是任何協(xié)操作的內(nèi)容都被直接寫入物理文件,包括文件內(nèi)容和文件屬性。
–     “rwd” 數(shù)據(jù)同步讀寫. 等同于讀寫,但任何內(nèi)容寫操作都直接寫到物理文件,對(duì)文件屬性內(nèi)容的修改不是這樣。

五、字符流的方法

Reader類和Writer類
        在JDK1.1之前,java.io包中的流只有普通的字節(jié)流(以byte為基本處理單位的流),這種流對(duì)于以16位的Unicode碼表示的字符流處理很不方便。從JDK1.1開(kāi)始, java.io包中加入了專門用于字符流處理的類,它們是以Reader和Writer為基礎(chǔ)派生的一系列類
同類InputStream和OutputStream一樣,Reader和Writer也是抽象類,只提供了一系列用于字符流處理的接口。它們的方法與類InputStream和OutputStream類似,只不過(guò)其中的參數(shù)換成字符或字符數(shù)組
Reader類
•     void close()
•     void mark(int readAheadLimit)
•     boolean markSupported() :
•     int read()
•     int read(char[] cbuf)
•     int read(char[] cbuf, int off, int len)
•     boolean ready()
•     void reset()
•     long skip(long n)
Writer類
•     void close()
•     void flush()
•     void write(char[] cbuf)
•     void write(char[] cbuf, int off, int len)
•     void write(int c)
•     void write(String str)
•     void write(String str, int off, int len)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多