InputStream/OutputStram & Path/File API

java.io.InputStream

abstract int read()
從數據中讀入一個字節,並返回改字節。這個read方法碰到輸入流結尾時返回-1
int read(byte[] b)
讀入一個字節數組,並返回實際讀入的字節數,或者碰到輸入流結尾時返回-1,這個read方法最多讀入b.length個字節
int read(byte[] b, int off, int len)
讀入一個字節數組,並返回實際讀入的字節數,或者碰到輸入流結尾時返回-1
參數: b 數據讀入的數組
off 第一個讀入字節應該被放置的位置在b中的偏移量
len 讀入字節的最大數量
long skip(long n)
在輸入流中跳過n個字節,返回實際跳過字節數(結尾處可能小於n)
int available()
返回在不阻塞的情況下獲取的字節數
void close()
關閉這個輸入流
void mark(int readlimit)
在輸入流的當前位置打一個標記,如果從輸入流已經讀入的字節多於readlimit個,則這個流允許忽略這個標記
void reset()
返回到最後一個標記,隨後對read的調用將重新讀入這些字節。如果當前沒有任何標記,則這個流不被重置
boolean markSupported()
如果這個流支持打標記,則返回true

java.io.OutputStream

abstract int write(int n)
寫出一個字節的數據
int write(byte[] b)
int write(byte[] b, int off, int len)
寫出所有字節或者某個範圍的字節到數組b中
參數: b 數據寫出的數組
off 第一個寫出字節在b中的偏移量
len 寫出字節的最大數量
void close()
關閉這個輸出流
void flush()
沖刷輸出流,也就是將所有緩衝的數據發送到目的地

java.io.Closeable

void close()
關閉這個Closeable,這個方法可能拋出IOException

java.io.Flushable

void flush()
沖刷這個Flushable

java.lang.Readable

int read(CharBuffer cb)
嘗試着向cb讀入其可持有數量的char值,返回讀入的char值的數量,或者當從這個Readable中無法再獲得更多的值時返回-1

java.lang.Appendable

Appendable append(char c)
Appendable append(CharSequence s)
向這個Appendable中追加給定的碼元或者給定序列中的所有碼元,返回this

java.lang.CharSequence

char charAt(int index)
返回給定索引出的碼元
int length()
返回在這個序列在的碼元的數量
CharSequence subSequence(int startIndex, int endIndex)
返回由存儲在startIndex到endIndex-1處的所有碼元構成的CharSequenc
String toString()
返回這個序列中所有碼元構成的字符串

java.io.FileInputStream

FileInputStream(String name)
FileInputStream(File file)
使用有name字符串或file對象指定路徑名的文件創建一個新的文件輸入流。非絕對路徑名將按照相對於VM啓動時所設置的工作目錄來解析
FileChannel getChannel()
返回用於訪問這個輸入流的通道

java.io.FileOutputStream

FileOutputStream(String name)
FileOutputStream(String name, boolean append)
FileOutputStream(File file)
FileOutputStream(File file, boolean append)
使用由name字符串或file對象指定路徑名的文件創建一個新的文件輸出流。如果append爲true,那麼數據將被添加到文件尾,而具有相同名字的已有文件不會被刪除;否則,這個方法會刪除具有相同名字的已有文件。
FileChannel getChannel()
返回用於訪問這個輸出流的通道

java.io.BufferedInputStream

BufferedInputStream(InputStream in)
創建一個帶緩衝區的輸入流。帶緩衝區的輸入流在從流中讀入字符時,不會每次都對設備訪問。當緩衝區爲空時,會向緩衝區中讀入一個新的數據塊

java.io.BufferedOutputStream

創建一個帶緩衝區的輸出流。帶緩衝區的輸處流在收集要寫的字符時,不會每次都對設備訪問。當緩衝區填滿或當流被沖刷時,數據就會被寫入。

java.io.PushbackInputStream

PushbackInputStream(InputStream in)
PushbackInputStream(InputStream in, int size)
構建一個可以預覽一個字節或具有指定尺寸的回推緩衝區的輸入流
void unread(int b)
回推一個字節,它可以在下次調用read時被再次獲取。

java.io.PrintWriter

PrintWriter(Writer out)
PrintWriter(Writer writer)
創建一個向給定的寫入器寫出的新的PrintWriter
PrintWriter(String filename, String ecoding)
PrintWriter(File file, String encoding)
創建一個使用給定的編碼方式向給定文件寫入的新的PrintWriter
void print(Object obj)
通過打印從toString產生的字符串來打印一個對象
void print(String s)
打印一個包含Unicode碼元的字符串
void println(String s)
打印一個字符串,後面緊跟一個行終止符。如果這個流處於自動沖刷模式,那麼就會沖刷這個流
void print(char[] s)
打印在給定的字符串中的所有Unicode碼元
void print(int i)
void print(long l)
void print(float f)
void print(double d)
void print(boolean b)
以文本格式打印給定的值
void printf(String format, Object… args)
按照格式字符串指定的方式打印給定的值(格式化字符串的規範)
boolean checkError()
如果產生格式化或輸出錯誤,則返回true。一旦這個流碰到了錯誤,它就受到了污染,並且所有對checkError的調用都將返回true

java.io.DataInput

char readChar()
byte readByte()
int readInt()
short readShort()
long readLong()
float readFloat()
double readDouble()
boolean readBoolean()
讀入一個給定類型的值
void readFully(byte[] b)
將字節讀入到數組b中,其間阻塞直至所有字節都讀入
void readFully(byte[] b, int off, int len)
將字節讀入到數組b中,其間阻塞直至所有字節都讀入
b 數據讀入的緩衝區
off 數據起始位置的偏移量
len 讀入字節的最大數量
String readUTF()
讀入由修訂過的UTF-8格式的字符構成的字符串
int skipBytes(int n)
跳過n個字節,其間阻塞直至鄋字節被跳過

java.io.DateOutput

void writeByte(int b)
void writeInt(int i)
void writeShort(int s)
void writeLong(long l)
void writeFloat(float f)
void writeDouble(double d)
void writeChar(int c)
void writeBoolean(boolean b)
寫出一個給定類型的值
void writeUTF(String s)
寫出字符串中的所有字符
void writeChars(String s)
寫出由修訂過的UTF-8格式的字符構成的字符串

java.io.RandomAccessFile

RandomAccessFile(String file, String mode)
RandomAccessFile(File file, String mode)
mode,r表示只讀模式,rw表示讀寫模式,rws表示每次更新時,都對數據和元數據的寫磁盤操作進行同步的讀寫模式。rwd表示每次更新時,只對數據的寫磁盤操作進行同步讀寫模式
long getFilePointer()
返回文件指針的當前位置
void seek(long pos)
將文件指針設置到距文件開頭pos個字節處
long length()
返回文件按照字節來度量的長度
FileChannel getChannel()
返回用於訪問這個文件的通道

java.util.zip.ZipInputStream

ZipInputStream(InputStream in)
創建一個ZipInputStream,使得可以從給定的InputStream向其中填充數據
ZipEntry getNextEntry()
爲下一項返回ZipEntry對象,或者在沒有更多的項時返回null
void closeEntry()
關閉這個ZIP文件中當前打開的項。之後可以通過使用getNextEntry()讀入下一項

java.util.zip.ZipOutputStream

ZipOutputStream(OutputStream out)
創建一個將壓縮數據寫出到指定的OutputStream的ZipOutputStream
void putNextEntry(ZipEntry ze)
將給定的ZipEntry中的信息寫出到輸出流中,並定位用於寫出數據的流,然後這些數據可以通過write()寫出到這個輸出流中
void closeEntry()
關閉這個ZIP文件中當前打開的項。之後可以通過使用putNextEntry()開始下一項
void setLevel(int level)
設置後續的各個DEFLATED項的默認壓縮級別。這裏默認值是Deflater.DEFAULT_COMPRESSION。如果級別無效則拋出IllegalArgumentException。
參數level,壓縮機別,從0(NO_COMPRESSION)到9(BEST_COMPRESSION)
void setMethod(int method)
設置用於這個ZipOutputStream的默認壓縮方法,這個壓縮方法會作用域所有沒有指定壓縮方法的項上
參數method,壓縮方法,DEFLATED或STORED

java.util.zip.ZipEntry

ZipEntry(String name)
用給定的名字創建一個Zip項
long getCrc()
返回用於這個ZipEntry的CRC32校驗和的值
String getName()
返回這一項的名字
long getSize()
返回這一項未壓縮的尺寸,或者在未壓縮的尺寸不可知的情況下返回-1
boolean isDirectory()
當這一項是目錄時返回true
void setMethod(int method)
用於這一項的壓縮方法,必須是DEFLATED或STORED
void setSize(long size)
設置這一項的尺寸,只有在壓縮方法是STORED時纔是必須的(size未壓縮尺寸)
void setCrc(long crc)
給這一項設置CRC32校驗和,這個校驗和是使用CRC32類計算的。只有在壓縮方法是STORED時纔是必須的

java.util.zip.ZipFile

ZipFile(String name)
ZipFile(File file)
創建一個ZipFile,用於從給定的字符串或File對象中讀入數據
Enumeration entries()
返回一個Enumeration對象,它枚舉了描述這個ZipFile中各個項的ZipEntry對象
ZipEntry getEntry(String name)
返回給定名字所對應的項,或者在沒有對應項時候返回null
InputStream getInputStream(ZipEntry ze)
返回用於給定項的InputStream
String getName()
返回這個ZIP文件的路徑

java.io.ObjectOutputStream

ObjectOutputStream(OutputStream out)
創建一個ObjectOutputStream使得可以將對象寫出到指定的OutputStream
void writeObject(Object obj)
寫出指定的對象到ObjectOutputStream,這個方法將存儲指定對象的類、類的簽名以及這個類及其超類中所有非靜態和非瞬時的域的值

java.io.ObjectInputStream

ObjectInputStream(InputStream in)
創建一個ObjectInputStream用於從指定的InputStream中讀回對象信息
Object readObject()
從ObjectInputStream中讀入一個對象。特別是,這個方法會讀回對象的類、類的簽名以及這個類及其超類中所有非靜態和非瞬時的域的值。它執行的反序列化允許恢復多個對象的引用

java.nio.file.Paths

static Path get(String first, String… more)
通過連接給的的字符串創建一個路徑

java.nio.file.Path

Path resolve(Path other)
Path resolve(String other)
如果other是絕對路徑,那麼就返回other;否則,返回通過連接this和other獲得的路徑
Path resolveSibling(Path other)
Path resolveSibling(String other)
如果other是絕對路徑,那麼就返回other;否則,返回通過連接this的父路徑和other獲得的路徑
Path relativize(Path other)
返回用this進行解析,相對於other的相對路徑
Path normalize()
移除諸如.和…等冗餘的路徑元素
Path toAbsolutePath()
返回與該路徑等價的絕對路徑
Path getParent()
返回父路徑,或者在該路徑沒有父路徑時,返回null
Path getFileName()
返回該路徑的最後一個部件,或該路徑沒有任何部件時,返回null
Path getRoot()
返回該路徑的根部件,或在該路徑沒有根部件時,返回null
toFile()
從該路徑創建一個File對象

java.io.File

Path toPath()
從該文件中創建一個Path對象

java.nio.file.Files

static byte[] readAllBytes(Path path)
static List< String > readAllLines(Path path, Charset charset)
讀入文件的內容
static Path write(Path path, byte[] contents, OpenOption… options)
static Path write(Path path, Iterable< ? extends CharSequence > contents, OpenOption… options)
將給定內容寫出到文件中,並返回path
static InputStream newInputStream(Path path, OpenOption… options)
static OutputStream newOutputStream(Path path, OpenOption… options)
static Reader newBufferedReader(Path path, Charset charset)
static Writer newBufferedWriter(Path path, Charset charset, OpenOption… options)
打開一個文件,用於讀入或寫出
static Path createFile(Path path, FileAttribute< ? >… attrs)
static Path createDirectory(Path path, FileAttribute< ? >… attrs)
static Path createDirectories(Path path, FileAttribute< ? >… attrs)
創建一個文件或目錄,createDirectories方法還會創建路徑中所有的中間目錄
static Path createTempFile(String prefix, String suffix, FileAttribute< ? >… attrs)
static Path createTempFile(Path parentDir, String prefix, String suffix, FileAttribute< ? >… attrs)
static Path createTempDirectory(String prefix, FileAttribute< ? >… attrs)
static Path createTempDirectory(Path parentDir, String prefix, FileAttribute< ? >… attrs)
在合適臨時文件的位置,或在給定的父目錄中,創建一個臨時文件或目錄。返回所創建的文件或目錄的路徑

static Path copy(Path from, Path to, CopyOption… options)
static Path move(Path from, Path to, CopyOption… options)
將from複製或移動給定位置,並返回to
static long copy(InputStream from, Path to, CopyOption… options)
static long copy(Path from, OutputStream to, CopyOption… options)
從輸入流複製到文件中,或者從文件複製到輸出流中,返回複製的字節數
static void delete(Path path)
static boolean deleteIfExists(Path path)
刪除給定文件或空目錄。第一個方法在文件或目錄不存在情況下拋出異常,而第二個方法在這種情況下會返回false

static boolean exists(Path path)
static boolean isHidden(Path path)
static boolean isReadable(Path path)
static boolean isWritable(Path path)
static boolean isExecutable(Path path)
static boolean isRegularFile(Path path)
static boolean isDirectory(Path path)
static boolean isSymbolicLink(Path path)
檢查由路徑指定的文件的給定屬性
static long size(Path path)
獲取文件按字節數度量的尺寸
A readAttributes(Path path, Class< A > type, LinkOption… option)
讀取類型爲A的文件熟悉

static DirectoryStream< Path > newDirectoryStream(Path path)
static DirectoryStream< Path > newDirectoryStream(Path path, String glob)
獲取給定目錄中可以遍歷所有文件和目錄的迭代器。第二個方法只接受那些與給定glob模式匹配的項
static Path walkFileTree(Path start, FileVisitor< ? super Path >)
遍歷給定路徑的所有子孫,並將訪問器應用於這些子孫之上

java.io.file.attribute.BasicFileAttributes

FileTime creationTime()
FileTime lastAccessTime()
FileTime lastModifiedTime()
boolean isRegularFile()
boolean isDirectory()
boolean isSymbolicLink()
long size()
Object fileKey()
獲取所請求的屬性

java.nio.file.SimpleFileVisitor< T >

static FileVisitResult visitFile(T path, BasicFileAttributes attrs)
在訪問文件或目錄時被調用,返回CONTINUE、SKIP_SUBTREE、SKIP_SIBLINGS、TERMINATE之一,默認實現是不是做任何操作而繼續訪問
static FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs)
static FileVisitResult postVisitDirectory(T dir, BasicFileAttributes attrs)
在訪問目錄之前或之後被調用,默認實現是不作任何操作繼續訪問
static FileVisitResult visitFileFailed(T path, IOException exc)
如果在試圖獲取給定文件的信息時拋出異常,則該方法被調用。默認實現是重新拋出異常,這會導致訪問操作終止。如果想自己訪問,可以覆蓋這個方法

java.nio.file.FileSystems

static FileSystem newFileSystem(Path path, ClassLoader loader)
對所安裝的文件系統提供者進行迭代,並且如果loader不爲null,那麼就還迭代給定的類加載器能夠加載的文件系統,返回由第一個可以接受給定路徑的文件系統提供者創建的文件系統。默認情況下,對於ZIP文件系統是有一個提供者的,他接受的名字以.zip或.jar結尾的文件

java.nio.file.FileSystem

static Path getPath(String first, String… more)
將給定的字符串連接起來創建一個路徑

java.nio.channels.FileChannel

static FileChannel open(Path path, OpenOption… options)
打開指定路徑的文件通道,默認情況下,通道打開時用於讀入。options,StandardOpenOption枚舉中的WRITE、APPEND、TRUNCATE_EXIATING、CREATE值
MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)
將文件的一個區域映射到內存中,mode:FileChannel.MapMode類中的常量READ_ONLY、READ_WRITE、PRIVATE,position映射區域的起始位置,size映射區域大小

FileLock lock()
在整個文件上獲得一個獨佔的鎖,這個方法將阻塞直至獲得鎖
FileLock teyLock()
在整個文件上獲得一個獨佔的鎖,或者在無法獲得鎖時返回null
FileLock lock(long position, long size, boolean shared)
FileLock tryLock(long position, long size, boolean shared)
在文件的一個區域上獲得鎖。第一個方法將阻塞直至獲得鎖,第二個在無法獲得鎖時返回null
position要鎖定區域的起始位置,size要鎖定區域的尺寸

java.nio.Buffer

boolean hasRemaining()
如果當前的緩衝區位置沒有達到這個緩衝區的界限位置,返回true
int limit()
返回這個緩衝區的界限位置,即沒有任何值可用的第一個位置

Buffer clear()
通過將位置復位到0,並將界限設置到容量,使這個緩衝區爲寫出做好準備。返回this
Buffer flip()
通過將界限設置到位置,並將位置復位到0,使這個緩衝區爲讀入做好準備,返回this
Buffer rewind()
通過將讀寫位置復位到0,並保持界限不變,使這個緩衝區爲重新讀入相同的值做好準備,返回this
Buffer mark()
將這個緩衝區的標記設置到讀寫位置,返回this
Buffer reset()
將這個緩衝區的位置設置到標記,從而允許被標記的部分可以再次被讀入或寫出,返回this
int remaining()
返回剩餘可讀入或可寫出的值的數量,即界限與位置之間的差異
int position()
void position(int newValue)
返回這個緩衝區的位置
int capacity()
返回這個緩衝區的容量

java.nio.ByteBuffer

byte get()
從當前位置獲得一個字節,並將當前位置移動到下一個字節
byte get(int index)
從指定索引處獲得一個字節
ByteBuffer put(byte b)
向當前位置推入一個字節,並將當前位置移動到下一個字節。返回對這個緩衝區的應用
ByteBuffer put(int index, byte b)
向指定索引處推入一個字節。返回對這個緩衝區的引用
ByteBuffer get(byte[] destination)
ByteBuffer get(byte[] destination, int offset, int length)
用緩衝區中的字節來填充字節數組,或者字節數組的某個區域,並將當前位置向前移動讀入的字節數個位置。如果緩衝區不夠大,那麼就不會讀入任何字節,並拋出BufferUnderflowException。返回對這個緩衝區的引用。
ByteBuffer put(byte[] source)
ByteBuffer put(byte[] source, int offset, int length)
將字節數組中的所有字節或者給定區域的字節推入緩衝區中,並將當前位置向前移動寫出的字節數個位置。如果緩衝區不夠大,那麼就不會讀入任何字節,並拋出BufferUnderflowException。返回對這個緩衝區的引用。
Xxx getXxx()
Xxx getXxx(int index)
ByteBuffer putXxx(Xxx value)
ByteBuffer putXxx(int index, Xxx value)
獲得或放置一個二進制數。Xxx是Int、Long、Short、Char、Float或Double中的一個
ByteBuffer order(ByteOrder order)
ByteOrder order()
設置或獲得字節順序,order的值是ByteOrder類的常量BIG_ENDIAN或LITTLE_ENDIAN中的一個
static ByteBuffer allocate(int capacity)
構建具有給定容量的緩衝區
static ByteBuffer wrap(byte[] values)
構建具有指定容量的緩衝區,該緩衝區是對給定數組的包裝
CharBuffer asCharBuffer()
構建字符緩衝區,它是對這個緩衝區的包裝。對該字符緩衝區的變更將在這個緩衝區中反應出來,但是該字符緩衝區有自己的位置、界限和標記。

java.nio.CharBuffer

char get()
CharBuffer get(char[] destination)
CharBuffer get(Char[] destination, int offset, int length)
從這個緩衝區的當前位置開始,獲得一個char值,或者一個範圍內的所有char值,然後將位置向前移動越過所有讀入的字符。最後兩個方法將返回this
CharBuffer put(Char c)
CharBuffer put(char[] source)
CharBuffer put(char[] source, int offset, int length)
CharBuffer put(String source)
CharBuffer put(CharBuffer source)
從這個緩衝區的當前位置開始,放置一個char值,或者一個範圍內的所有char值,然後將這個位置向前移動越過所有被出出的字符。當放置的值是從CharBuffer讀入時,將讀入所有剩餘字符。所有方法將返回this。

java.nio.channels.FileLock

void close()
釋放這個鎖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章