W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.io.RandomAccessFile
public class RandomAccessFile
extends Object
implements DataOutput, DataInput, Closeable
此類的實例支持讀取和寫入隨機(jī)訪問文件。隨機(jī)訪問文件的行為類似于存儲在文件系統(tǒng)中的大型字節(jié)數(shù)組。有一種游標(biāo),或隱含數(shù)組的索引,稱為文件指針;輸入操作從文件指針開始讀取字節(jié),并將文件指針推進(jìn)超過讀取的字節(jié)。如果隨機(jī)存取文件是以讀/寫模式創(chuàng)建的,那么輸出操作也是可用的;輸出操作從文件指針開始寫入字節(jié),并將文件指針前進(jìn)到寫入的字節(jié)。寫入隱含數(shù)組當(dāng)前末尾的輸出操作會導(dǎo)致數(shù)組被擴(kuò)展。文件指針可以通過 getFilePointer 方法讀取并通過 seek 方法設(shè)置。
對于此類中的所有讀取例程,通常情況下,如果在讀取所需的字節(jié)數(shù)之前到達(dá)文件結(jié)尾,則會拋出 EOFException(這是一種 IOException)。如果由于文件結(jié)尾以外的任何原因無法讀取任何字節(jié),則會引發(fā)除 EOFException 之外的 IOException。特別是,如果流已關(guān)閉,則可能會引發(fā) IOException。
Since:
JDK1.0
構(gòu)造函數(shù) | 描述 |
---|---|
RandomAccessFile(File file, String mode) | 創(chuàng)建一個隨機(jī)訪問文件流,以讀取和寫入由 File 參數(shù)指定的文件。 |
RandomAccessFile(String name, String mode) | 創(chuàng)建一個隨機(jī)訪問文件流,以讀取和寫入具有指定名稱的文件。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | close() | 關(guān)閉此隨機(jī)訪問文件流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 |
FileChannel | getChannel() | 返回與此文件關(guān)聯(lián)的唯一 FileChannel 對象。 |
FileDescriptor | getFD() | 返回與此流關(guān)聯(lián)的不透明文件描述符對象。 |
long | getFilePointer() | 返回此文件中的當(dāng)前偏移量。 |
long | length() | 返回此文件的長度。 |
int | read() | 從此文件中讀取一個字節(jié)的數(shù)據(jù)。 |
int | read(byte[] b) | 從此文件中讀取最多 b.length 個字節(jié)的數(shù)據(jù)到字節(jié)數(shù)組中。 |
int | read(byte[] b, int off, int len) | 從此文件中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 |
boolean | readBoolean() | 從此文件中讀取一個布爾值。 |
byte | readByte() | 從此文件中讀取一個有符號的 8 位值。 |
char | readChar() | 從此文件中讀取一個字符。 |
double | readDouble() | 從此文件中讀取一個 double。 |
float | readFloat() | 從此文件中讀取一個浮點(diǎn)數(shù)。 |
void | readFully(byte[] b) | 從此文件中讀取 b.length 個字節(jié)到字節(jié)數(shù)組中,從當(dāng)前文件指針開始。 |
void | readFully(byte[] b, int off, int len) | 從當(dāng)前文件指針開始,從該文件準(zhǔn)確讀取 len 個字節(jié)到字節(jié)數(shù)組中。 |
int | readInt() | 從此文件中讀取一個帶符號的 32 位整數(shù)。 |
String | readLine() | 從此文件中讀取下一行文本。 |
long | readLong() | 從此文件中讀取一個帶符號的 64 位整數(shù)。 |
short | readShort() | 從此文件中讀取一個帶符號的 16 位數(shù)字。 |
int | readUnsignedByte() | 從此文件中讀取一個無符號八位數(shù)。 |
int | readUnsignedShort() | 從此文件中讀取一個無符號的 16 位數(shù)字。 |
String | readUTF() | 從此文件中讀取字符串。 |
void | seek(long pos) | 設(shè)置文件指針偏移量,從該文件的開頭開始測量,下一次讀取或?qū)懭氚l(fā)生在該位置。 |
void | setLength(long newLength) | 設(shè)置此文件的長度。 |
int | skipBytes(int n) | 嘗試跳過 n 個字節(jié)的輸入丟棄跳過的字節(jié)。 |
void | write(byte[] b) | 將指定字節(jié)數(shù)組中的 b.length 個字節(jié)寫入此文件,從當(dāng)前文件指針開始。 |
void | write(byte[] b, int off, int len) | 從偏移量 off 開始的指定字節(jié)數(shù)組中寫入 len 個字節(jié)到此文件。 |
void | write(int b) | 將指定的字節(jié)寫入此文件。 |
void | writeBoolean(boolean v) | 將布爾值作為單字節(jié)值寫入文件。 |
void | writeByte(int v) | 將一個字節(jié)作為單字節(jié)值寫入文件。 |
void | writeBytes(String s) | 將字符串作為字節(jié)序列寫入文件。 |
void | writeChar(int v) | 將 char 作為兩字節(jié)值寫入文件,先是高字節(jié)。 |
void | writeChars(String s) | 將字符串作為字符序列寫入文件。 |
void | writeDouble(double v) | 使用 Double 類中的 doubleToLongBits 方法將 double 參數(shù)轉(zhuǎn)換為 long,然后將該 long 值作為 8 字節(jié)數(shù)量寫入文件,先是高字節(jié)。 |
void | writeFloat(float v) | 使用 Float 類中的 floatToIntBits 方法將 float 參數(shù)轉(zhuǎn)換為 int,然后將該 int 值作為四字節(jié)數(shù)量寫入文件,先是高字節(jié)。 |
void | writeInt(int v) | 將 int 作為四個字節(jié)寫入文件,先是高字節(jié)。 |
void | writeLong(long v) | 將 long 作為 8 個字節(jié)寫入文件,先是高字節(jié)。 |
void | writeShort(int v) | 以兩個字節(jié)的形式向文件寫入一個short,首先是高字節(jié)。 |
void | writeUTF(String str) | 以與機(jī)器無關(guān)的方式使用修改后的 UTF-8 編碼將字符串寫入文件。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public RandomAccessFile(String name, String mode) throws FileNotFoundException
創(chuàng)建一個隨機(jī)訪問文件流,以讀取和寫入具有指定名稱的文件。 創(chuàng)建一個新的 FileDescriptor 對象來表示與文件的連接。
mode 參數(shù)指定打開文件的訪問模式。 允許的值及其含義與為 RandomAccessFile(File,String) 構(gòu)造函數(shù)指定的一樣。
如果有安全管理器,則調(diào)用其 checkRead 方法,并使用 name 參數(shù)作為其參數(shù),以查看是否允許對文件進(jìn)行讀取訪問。 如果該模式允許寫入,則還調(diào)用安全管理器的 checkWrite 方法,并將 name 參數(shù)作為其參數(shù),以查看是否允許對文件進(jìn)行寫入訪問。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
name | 系統(tǒng)相關(guān)的文件名 |
mode | 訪問模式 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果模式參數(shù)不等于“r”、“rw”、“rws”或“rwd”之一 |
FileNotFoundException | 如果模式為“r”但給定的字符串不表示現(xiàn)有的常規(guī)文件,或者如果模式以“rw”開頭但給定的字符串不表示現(xiàn)有的可寫常規(guī)文件并且該名稱的新常規(guī)文件不能 被創(chuàng)建,或者在打開或創(chuàng)建文件時發(fā)生其他錯誤 |
SecurityException | 如果安全管理器存在且其 checkRead 方法拒絕對文件的讀訪問或模式為“rw”且安全管理器的 checkWrite 方法拒絕對文件的寫訪問 |
public RandomAccessFile(File file, String mode) throws FileNotFoundException
創(chuàng)建一個隨機(jī)訪問文件流,以讀取和寫入由 File 參數(shù)指定的文件。創(chuàng)建一個新的 FileDescriptor 對象來表示此文件連接。
mode 參數(shù)指定打開文件的訪問模式。允許的值及其含義是:
“rws”和“rwd”模式的工作方式很像 FileChannel 類的 force(boolean) 方法,分別傳遞 true 和 false 的參數(shù),除了它們總是適用于每個 I/O 操作,因此通常更有效。如果文件駐留在本地存儲設(shè)備上,則當(dāng)調(diào)用此類的方法返回時,可以保證該調(diào)用對文件所做的所有更改都已寫入該設(shè)備。這對于確保在系統(tǒng)崩潰時不會丟失關(guān)鍵信息很有用。如果文件不駐留在本地設(shè)備上,則不會做出此類保證。
“rwd”模式可用于減少執(zhí)行的 I/O 操作的數(shù)量。使用“rwd”只需要更新要寫入存儲的文件內(nèi)容;使用“rws”需要更新文件的內(nèi)容和要寫入的元數(shù)據(jù),這通常需要至少一個低級 I/O 操作。
如果有安全管理器,則調(diào)用其 checkRead 方法,并以文件參數(shù)的路徑名作為其參數(shù),以查看是否允許對文件進(jìn)行讀取訪問。如果該模式允許寫入,還使用路徑參數(shù)調(diào)用安全管理器的 checkWrite 方法,以查看是否允許對文件進(jìn)行寫入訪問。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
file | 文件對象 |
mode | 訪問模式,如上所述 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果模式參數(shù)不等于“r”、“rw”、“rws”或“rwd”之一 |
FileNotFoundException | 如果模式為“r”但給定的文件對象不表示現(xiàn)有的常規(guī)文件,或者如果模式以“rw”開頭但給定的文件對象不表示現(xiàn)有的可寫常規(guī)文件和該文件的新常規(guī)文件 無法創(chuàng)建名稱,或者在打開或創(chuàng)建文件時出現(xiàn)其他錯誤 |
SecurityException | 如果安全管理器存在且其 checkRead 方法拒絕對文件的讀訪問或模式為“rw”且安全管理器的 checkWrite 方法拒絕對文件的寫訪問 |
public final FileDescriptor getFD() throws IOException
返回與此流關(guān)聯(lián)的不透明文件描述符對象。
返回:
與此流關(guān)聯(lián)的文件描述符對象。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final FileChannel getChannel()
返回與此文件關(guān)聯(lián)的唯一 FileChannel 對象。
返回通道的位置將始終等于 getFilePointer 方法返回的該對象的文件指針偏移量。 更改此對象的文件指針偏移量,無論是顯式地還是通過讀取或?qū)懭胱止?jié),都會改變通道的位置,反之亦然。 通過此對象更改文件的長度將更改通過文件通道看到的長度,反之亦然。
返回:
與此文件關(guān)聯(lián)的文件通道
Since:
1.4
public int read() throws IOException
從此文件中讀取一個字節(jié)的數(shù)據(jù)。 該字節(jié)以 0 到 255 (0x00-0x0ff) 范圍內(nèi)的整數(shù)形式返回。 如果還沒有輸入可用,則此方法會阻塞。
盡管 RandomAccessFile 不是 InputStream 的子類,但此方法的行為方式與 InputStream 的 InputStream#read() 方法完全相同。
返回:
數(shù)據(jù)的下一個字節(jié),如果已到達(dá)文件末尾,則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 如果已到達(dá)文件結(jié)尾,則不拋出。 |
public int read(byte[] b, int off, int len) throws IOException
從此文件中讀取最多 len 個字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組中。 此方法會阻塞,直到至少有一個字節(jié)的輸入可用。
盡管 RandomAccessFile 不是 InputStream 的子類,但此方法的行為方式與 InputStream 的 [InputStream#read(byte], int, int) 方法完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 數(shù)組 b 中寫入數(shù)據(jù)的起始偏移量。 |
len | 讀取的最大字節(jié)數(shù)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于已到達(dá)文件末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果由于文件結(jié)尾以外的任何原因無法讀取第一個字節(jié),或者隨機(jī)訪問文件已關(guān)閉,或者發(fā)生其他一些 I/O 錯誤。 |
NullPointerException | 如果 b 為空。 |
IndexOutOfBoundsException | 如果 off 為負(fù)數(shù),len 為負(fù)數(shù),或者 len 大于 b.length - off |
public int read(byte[] b) throws IOException
從此文件中讀取最多 b.length 個字節(jié)的數(shù)據(jù)到字節(jié)數(shù)組中。 此方法會阻塞,直到至少有一個字節(jié)的輸入可用。
盡管 RandomAccessFile 不是 InputStream 的子類,但此方法的行為方式與 InputStream 的 [InputStream#read(byte]) 方法完全相同。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
返回:
讀入緩沖區(qū)的總字節(jié)數(shù),如果由于已到達(dá)此文件的末尾而沒有更多數(shù)據(jù),則為 -1。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果由于文件結(jié)尾以外的任何原因無法讀取第一個字節(jié),或者隨機(jī)訪問文件已關(guān)閉,或者發(fā)生其他一些 I/O 錯誤。 |
NullPointerException | 如果 b 為空。 |
public final void readFully(byte[] b) throws IOException
從此文件中讀取 b.length 個字節(jié)到字節(jié)數(shù)組中,從當(dāng)前文件指針開始。 此方法從文件中重復(fù)讀取,直到讀取請求的字節(jié)數(shù)。 此方法會一直阻塞,直到讀取到請求的字節(jié)數(shù)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readFully
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取所有字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void readFully(byte[] b, int off, int len) throws IOException
從當(dāng)前文件指針開始,從該文件準(zhǔn)確讀取 len 個字節(jié)到字節(jié)數(shù)組中。 此方法從文件中重復(fù)讀取,直到讀取請求的字節(jié)數(shù)。 此方法會一直阻塞,直到讀取到請求的字節(jié)數(shù)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readFully
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 讀取數(shù)據(jù)的緩沖區(qū)。 |
off | 數(shù)據(jù)的起始偏移量。 |
len | 要讀取的字節(jié)數(shù)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取所有字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public int skipBytes(int n) throws IOException
嘗試跳過 n 個字節(jié)的輸入丟棄跳過的字節(jié)。
此方法可能會跳過一些較小的字節(jié)數(shù),可能為零。 這可能是由多種情況中的任何一種造成的; 在跳過 n 個字節(jié)之前到達(dá)文件末尾只是一種可能性。 此方法從不拋出 EOFException。 返回實際跳過的字節(jié)數(shù)。 如果 n 為負(fù)數(shù),則不跳過任何字節(jié)。
指定者:
接口 DataInput 中的 skipBytes
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
n | 要跳過的字節(jié)數(shù)。 |
返回:
跳過的實際字節(jié)數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void write(int b) throws IOException
將指定的字節(jié)寫入此文件。 寫入從當(dāng)前文件指針開始。
指定者:
寫入接口DataOutput
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 要寫入的字節(jié)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void write(byte[] b) throws IOException
將指定字節(jié)數(shù)組中的 b.length 個字節(jié)寫入此文件,從當(dāng)前文件指針開始。
指定者:
寫入接口DataOutput
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 數(shù)據(jù)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void write(byte[] b, int off, int len) throws IOException
從偏移量 off 開始的指定字節(jié)數(shù)組中寫入 len 個字節(jié)到此文件。
指定者:
寫入接口DataOutput
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
b | 數(shù)據(jù)。 |
off | 數(shù)據(jù)中的起始偏移量。 |
len | 要寫入的字節(jié)數(shù)。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public long getFilePointer() throws IOException
返回此文件中的當(dāng)前偏移量。
返回:
從文件開頭的偏移量,以字節(jié)為單位,發(fā)生下一次讀取或?qū)懭搿?/p>
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void seek(long pos) throws IOException
設(shè)置文件指針偏移量,從該文件的開頭開始測量,下一次讀取或?qū)懭氚l(fā)生在該位置。 偏移量可以設(shè)置在文件末尾之外。 設(shè)置超出文件末尾的偏移量不會更改文件長度。 只有在將偏移量設(shè)置到文件末尾之后,文件長度才會改變。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pos | 偏移位置,以從文件開頭開始的字節(jié)為單位,設(shè)置文件指針的位置。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果 pos 小于 0 或發(fā)生 I/O 錯誤。 |
public long length() throws IOException
返回此文件的長度。
返回:
此文件的長度,以字節(jié)為單位。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void setLength(long newLength) throws IOException
設(shè)置此文件的長度。
如果 length 方法返回的文件的當(dāng)前長度大于 newLength 參數(shù),則文件將被截斷。 在這種情況下,如果 getFilePointer 方法返回的文件偏移量大于 newLength,則在此方法返回后,偏移量將等于 newLength。
如果 length 方法返回的文件的當(dāng)前長度小于 newLength 參數(shù),則文件將被擴(kuò)展。 在這種情況下,未定義文件擴(kuò)展部分的內(nèi)容。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
newLength | 所需的文件長度 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤 |
Since:
1.2
public void close() throws IOException
關(guān)閉此隨機(jī)訪問文件流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 關(guān)閉的隨機(jī)存取文件無法執(zhí)行輸入或輸出操作,也無法重新打開。
如果此文件具有關(guān)聯(lián)的通道,則該通道也將關(guān)閉。
指定者:
在接口 AutoCloseable 中關(guān)閉
指定者:
在接口Closeable中關(guān)閉
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final boolean readBoolean() throws IOException
從此文件中讀取一個布爾值。 此方法從文件中讀取單個字節(jié),從當(dāng)前文件指針開始。 值 0 表示假。 任何其他值都表示真。 此方法一直阻塞,直到讀取字節(jié)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readBoolean
返回:
讀取的布爾值。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個文件已經(jīng)結(jié)束。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final byte readByte() throws IOException
從此文件中讀取一個有符號的 8 位值。 此方法從文件中讀取一個字節(jié),從當(dāng)前文件指針開始。 如果讀取的字節(jié)為 b,其中 0 <= b <= 255,則結(jié)果為:
(byte)(b)
此方法一直阻塞,直到讀取字節(jié)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readByte
返回:
此文件的下一個字節(jié)為有符號的 8 位字節(jié)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個文件已經(jīng)結(jié)束。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final int readUnsignedByte() throws IOException
從此文件中讀取一個無符號八位數(shù)。 此方法從該文件中讀取一個字節(jié),從當(dāng)前文件指針開始,并返回該字節(jié)。
此方法一直阻塞,直到讀取字節(jié)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readUnsignedByte
返回:
此文件的下一個字節(jié),解釋為無符號八位數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果這個文件已經(jīng)結(jié)束。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final short readShort() throws IOException
從此文件中讀取一個帶符號的 16 位數(shù)字。 該方法從該文件中讀取兩個字節(jié),從當(dāng)前文件指針開始。 如果按順序讀取的兩個字節(jié)是 b1 和 b2,其中兩個值中的每一個都介于 0 和 255 之間,包括 0 和 255,則結(jié)果等于:
(short)((b1 << 8) | b2)
此方法一直阻塞,直到讀取了兩個字節(jié)、檢測到流結(jié)束或拋出異常。
指定者:
接口 DataInput 中的 readShort
返回:
該文件的下兩個字節(jié),解釋為帶符號的 16 位數(shù)字。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取兩個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final int readUnsignedShort() throws IOException
從此文件中讀取一個無符號的 16 位數(shù)字。 此方法從文件中讀取兩個字節(jié),從當(dāng)前文件指針開始。 如果按順序讀取的字節(jié)是 b1 和 b2,其中 0 <= b1,b2 <= 255,則結(jié)果等于:
(b1 << 8) | b2
此方法一直阻塞,直到讀取了兩個字節(jié)、檢測到流結(jié)束或拋出異常。
指定者:
接口 DataInput 中的 readUnsignedShort
返回:
此文件的下兩個字節(jié),解釋為無符號 16 位整數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取兩個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final char readChar() throws IOException
從此文件中讀取一個字符。 此方法從文件中讀取兩個字節(jié),從當(dāng)前文件指針開始。 如果按順序讀取的字節(jié)是 b1 和 b2,其中 0 <= b1,b2 <= 255,則結(jié)果等于:
(char)((b1 << 8) | b2)
此方法一直阻塞,直到讀取了兩個字節(jié)、檢測到流結(jié)束或拋出異常。
指定者:
接口 DataInput 中的 readChar
返回:
該文件的下兩個字節(jié),解釋為一個字符。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取兩個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final int readInt() throws IOException
從此文件中讀取一個帶符號的 32 位整數(shù)。 此方法從文件中讀取 4 個字節(jié),從當(dāng)前文件指針開始。 如果按順序讀取的字節(jié)是 b1、b2、b3 和 b4,其中 0 <= b1、b2、b3、b4 <= 255,則結(jié)果等于:
(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
此方法一直阻塞,直到讀取了四個字節(jié)、檢測到流的結(jié)尾或拋出異常。
指定者:
接口 DataInput 中的 readInt
返回:
此文件的下四個字節(jié),解釋為 int。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取四個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final long readLong() throws IOException
從此文件中讀取一個帶符號的 64 位整數(shù)。 此方法從文件中讀取八個字節(jié),從當(dāng)前文件指針開始。 如果按順序讀取的字節(jié)是 b1、b2、b3、b4、b5、b6、b7 和 b8,其中:
0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
那么結(jié)果等于:
((long)b1 << 56) + ((long)b2 << 48)
+ ((long)b3 << 40) + ((long)b4 << 32)
+ ((long)b5 << 24) + ((long)b6 << 16)
+ ((long)b7 << 8) + b8
此方法一直阻塞,直到讀取了 8 個字節(jié)、檢測到流結(jié)束或引發(fā)異常。
指定者:
接口 DataInput 中的 readLong
返回:
該文件的接下來的 8 個字節(jié),解釋為 long。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取八個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final float readFloat() throws IOException
從此文件中讀取一個浮點(diǎn)數(shù)。 此方法從當(dāng)前文件指針開始讀取一個 int 值,就像通過 readInt 方法一樣,然后使用 Float 類中的 intBitsToFloat 方法將該 int 轉(zhuǎn)換為浮點(diǎn)數(shù)。
此方法一直阻塞,直到讀取了四個字節(jié)、檢測到流的結(jié)尾或拋出異常。
指定者:
接口 DataInput 中的 readFloat
返回:
此文件的下四個字節(jié),解釋為浮點(diǎn)數(shù)。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取四個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final double readDouble() throws IOException
從此文件中讀取一個 double。 此方法從當(dāng)前文件指針開始讀取一個 long 值,就像通過 readLong 方法一樣,然后使用 Double 類中的 longBitsToDouble 方法將該 long 轉(zhuǎn)換為 double。
此方法一直阻塞,直到讀取了 8 個字節(jié)、檢測到流結(jié)束或引發(fā)異常。
指定者:
接口 DataInput 中的 readDouble
返回:
此文件的下八個字節(jié),解釋為雙精度。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取八個字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
public final String readLine() throws IOException
從此文件中讀取下一行文本。此方法從文件中連續(xù)讀取字節(jié),從當(dāng)前文件指針開始,直到到達(dá)行終止符或文件末尾。通過獲取字符低八位的字節(jié)值并將字符的高八位設(shè)置為零,將每個字節(jié)轉(zhuǎn)換為字符。因此,此方法不支持完整的 Unicode 字符集。
一行文本由回車符 ('\r')、換行符 ('\n')、緊跟換行符的回車符或文件結(jié)尾終止。行終止字符被丟棄,并且不包含在返回的字符串中。
此方法阻塞,直到讀取換行符、讀取回車符和其后的字節(jié)(以查看是否為換行符)、到達(dá)文件末尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readLine
返回:
此文件中的下一行文本,如果在讀取一個字節(jié)之前遇到文件結(jié)尾,則為 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final String readUTF() throws IOException
從此文件中讀取字符串。 該字符串已使用修改后的 UTF-8 格式進(jìn)行編碼。
從當(dāng)前文件指針開始讀取前兩個字節(jié),就像通過 readUnsignedShort 一樣。 該值給出了編碼字符串中的后續(xù)字節(jié)數(shù),而不是結(jié)果字符串的長度。 隨后的字節(jié)被解釋為字節(jié)編碼字符在修改的 UTF-8 格式,并被轉(zhuǎn)換成字符。
此方法阻塞,直到讀取所有字節(jié)、檢測到流的結(jié)尾或引發(fā)異常。
指定者:
接口 DataInput 中的 readUTF
返回:
一個 Unicode 字符串。
Throws:
Throw名稱 | Throw描述 |
---|---|
EOFException | 如果此文件在讀取所有字節(jié)之前到達(dá)末尾。 |
IOException | 如果發(fā)生 I/O 錯誤。 |
UTFDataFormatException | 如果字節(jié)不代表 Unicode 字符串的有效修改 UTF-8 編碼。 |
public final void writeBoolean(boolean v) throws IOException
將布爾值作為單字節(jié)值寫入文件。 值 true 被寫為值(字節(jié))1; 值 false 被寫為值(字節(jié))0。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeBoolean
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的布爾值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeByte(int v) throws IOException
將一個字節(jié)作為單字節(jié)值寫入文件。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeByte
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的字節(jié)值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeShort(int v) throws IOException
以兩個字節(jié)的形式向文件寫入一個short,首先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeShort
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的 short 值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeChar(int v) throws IOException
將 char 作為兩字節(jié)值寫入文件,先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeChar
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的 char 值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeInt(int v) throws IOException
將 int 作為四個字節(jié)寫入文件,先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeInt
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的 int。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeLong(long v) throws IOException
將 long 作為 8 個字節(jié)寫入文件,先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeLong
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的 long 值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeFloat(float v) throws IOException
使用 Float 類中的 floatToIntBits 方法將 float 參數(shù)轉(zhuǎn)換為 int,然后將該 int 值作為四字節(jié)數(shù)量寫入文件,先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeFloat
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的浮點(diǎn)值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeDouble(double v) throws IOException
使用 Double 類中的 doubleToLongBits 方法將 double 參數(shù)轉(zhuǎn)換為 long,然后將該 long 值作為 8 字節(jié)數(shù)量寫入文件,先是高字節(jié)。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeDouble
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
v | 要寫入的 double 值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeBytes(String s) throws IOException
將字符串作為字節(jié)序列寫入文件。 字符串中的每個字符通過丟棄其高八位按順序?qū)懗觥?寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeBytes
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要寫入的字節(jié)串。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeChars(String s) throws IOException
將字符串作為字符序列寫入文件。 每個字符都被寫入數(shù)據(jù)輸出流,就像通過 writeChar 方法一樣。 寫入從文件指針的當(dāng)前位置開始。
指定者:
接口 DataOutput 中的 writeChars
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
s | 要寫入的字符串值。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public final void writeUTF(String str) throws IOException
以與機(jī)器無關(guān)的方式使用修改后的 UTF-8 編碼將字符串寫入文件。
首先,將兩個字節(jié)寫入文件,從當(dāng)前文件指針開始,就好像通過 writeShort 方法給出了后面的字節(jié)數(shù)。 這個值是實際寫出的字節(jié)數(shù),而不是字符串的長度。 在長度之后,按順序輸出字符串的每個字符,對每個字符使用修改后的 UTF-8 編碼。
指定者:
接口 DataOutput 中的 writeUTF
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
str | 要寫入的字符串。 |
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: