3.1 BufferedInputStream類——緩沖字節(jié)輸入流 125
3.1.1 構(gòu)造方法——BufferedInputStream類的構(gòu)造方法 125
3.1.2 available方法——返回可以讀取的估計(jì)字節(jié)數(shù) 125
3.1.3 close方法——關(guān)閉此輸入流并釋放所有關(guān)聯(lián)的系統(tǒng)資源 126
3.1.4 mark方法——記錄當(dāng)前指針?biāo)诘奈恢谩?26
3.1.5 markSupported方法——測(cè)試是否支持mark()方法和reset()方法 127
3.1.6 read方法——從輸入流中讀取數(shù)據(jù) 128
3.1.7 reset方法——重新定位輸入流 129
3.1.8 skip方法——跳過(guò)并丟棄指定字節(jié)數(shù)量的數(shù)據(jù) 129
3.2 BufferedOutputStream類——緩沖字節(jié)輸出流 130
3.2.1 構(gòu)造方法——BufferedOutputStream類的構(gòu)造方法 130
3.2.2 flush方法——刷新此緩沖輸出流 131
3.2.3 write方法——向輸出流中寫數(shù)據(jù) 131
3.3 BufferedReader類——緩沖字符輸入流 133
3.3.1 構(gòu)造方法——BufferedReader類的構(gòu)造方法 133
3.3.2 close方法——關(guān)閉流并釋放與之關(guān)聯(lián)的所有資源 133
3.3.3 mark方法——記錄當(dāng)前讀指針?biāo)诘奈恢谩?34
3.3.4 markSupported方法——判斷指定流是否支持mark()操作 134
3.3.5 read方法——從緩沖輸入流中讀取字符 135
3.3.6 readLine方法——讀取一個(gè)文本行 136
3.3.7 ready方法——判斷此流是否已準(zhǔn)備好被讀取 137
3.3.8 reset方法——重定位指針 137
3.3.9 skip方法——跳過(guò)指定數(shù)量的字符 138
3.4 BufferedWriter類——緩沖字符輸出流 138
3.4.1 構(gòu)造方法——BufferedWriter類的構(gòu)造方法 139
3.4.2 close方法——關(guān)閉流 139
3.4.3 flush方法——刷新緩沖區(qū) 139
3.4.4 newLine方法——寫入一個(gè)行分隔符 140
3.4.5 write方法——向緩沖區(qū)中寫數(shù)據(jù) 141
3.5 DataInputStream類——數(shù)據(jù)輸入流 142
3.5.1 read方法——讀取一定數(shù)量的字節(jié) 143
3.5.2 readByte方法——讀取此操作需要的字節(jié) 145
3.5.3 readBoolean方法——讀取一個(gè)布爾值 145
3.5.4 readchar方法——讀取此操作需要的字符 145
3.5.5 readDouble方法——讀取一個(gè)double值 146
3.5.6 readFloat方法——讀取一個(gè)float值 146
3.5.7 readFully方法——讀取一些字節(jié) 147
3.5.8 readInt方法——讀取一個(gè)int值 148
3.5.9 readLong方法——讀取一個(gè)long值 149
3.5.10 readShort方法——讀取一個(gè)short值 149
3.5.11 readUnsignedByte方法——讀取無(wú)符號(hào)的byte值 149
3.5.12 readUnsignedShort方法——讀取無(wú)符號(hào)的short值 150
3.5.13 readUTF方法——讀取UTF-8編碼的字符串 150
3.5.14 skipBytes方法——在輸入流中跳過(guò)數(shù)據(jù)的n個(gè)字節(jié) 152
3.6 DataOutputStream類——數(shù)據(jù)輸出流 153
3.6.1 flush方法——清空此數(shù)據(jù)輸出流 153
3.6.2 size方法——返回計(jì)數(shù)器 written 的當(dāng)前值 154
3.6.3 write方法(流輸出方法) 155
3.6.4 writeBoolean方法——將boolean值寫入輸出流 156
3.6.5 writeByte方法——將byte值寫入輸出流 156
3.6.6 writeBytes方法——將字符串中每一個(gè)字符的低字節(jié)的內(nèi)容寫入輸出流 157
3.6.7 writeChar方法——將char值寫入輸出流 157
3.6.8 writechars方法——將字符串每個(gè)char值寫入輸出流 158
3.6.9 writeDouble方法——將double值寫入輸出流 158
3.6.10 writeFloat方法——將float值寫入輸出流 159
3.6.11 writeLong方法——將long值寫入輸出流 160
3.6.12 writeShort方法——將short值寫入輸出流 160
3.6.13 writeUTF()方法——將UTF-8編碼字符寫入輸出流 161
3.7 File類——文件類 161
java.io.File用于表示文件(目錄),也就是說(shuō)程序員可以通過(guò)File類在程序中操作硬盤上的文件和目錄。
File類只用于表示文件(目錄)的信息(名稱、大小等),換句話說(shuō)只能訪問(wèn)文件或目錄的相關(guān)屬性,不能對(duì)文件的內(nèi)容進(jìn)行訪問(wèn)。
3.7.1 構(gòu)造方法——File類的構(gòu)造方法 161
File(String pathname)
通過(guò)將給定路徑名字符串轉(zhuǎn)換成抽象路徑名來(lái)創(chuàng)建一個(gè)新 File 實(shí)例
提示:抽象路徑應(yīng)盡量使用相對(duì)路徑,并且目錄的層級(jí)分隔符不要直接寫”/”或”/”,應(yīng)使用File.separator這個(gè)常量表示,以避免不同系統(tǒng)帶來(lái)的差異。
File的另一個(gè)常用構(gòu)造方法:
File(File parent,String child)
根據(jù) parent 抽象路徑名和 child 路徑名字符串創(chuàng)建一個(gè)新 File 實(shí)例。
3.7.2 常量——File類的常量 162
3.7.3 canExecute方法——判讀文件是否可執(zhí)行 162
3.7.4 canRead方法——判斷文件是否可讀 162
3.7.5 canWrite方法——判斷文件是否可寫 163
3.7.6 compareTo方法——比較文件對(duì)象 163
3.7.7 createNewFile方法——創(chuàng)建新的文件 164
File的createNewFile方法用于當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定的名稱的文件時(shí),原子地創(chuàng)建由此抽象路徑名指定的一個(gè)新的空文件
boolean createNewFile()
返回值:如果指定的文件不存在并成功地創(chuàng)建,則返回 true;如果指定的文件已經(jīng)存在,則返回 false 。
package com.souvc.api;import java.io.File;import java.io.IOException;import org.junit.Test;public class TestFile { @Test public void testCreateNewFile() throws IOException { File file = new File("JavaApi" + File.separator + "Hello.txt"); // 若不存在,就創(chuàng)建該文件 if (!file.exists()) { file.createNewFile(); } }}
3.7.8 createTempFile方法——創(chuàng)建臨時(shí)文件 164
3.7.9 delete方法——刪除文件 167
File的delete方法用于刪除此抽象路徑名表示的文件或目錄。
boolean delete()
返回值:當(dāng)且僅當(dāng)成功刪除文件或目錄時(shí),返回 true;否則返回 false。
需要注意的是,若此File對(duì)象所表示的是一個(gè)目錄時(shí),在刪除時(shí)需要保證此為空目錄才可以成功刪除(目錄中不能含有任何子項(xiàng))。
package com.souvc.api;import java.io.File;import java.io.IOException;import org.junit.Test;public class TestFile { @Test public void testDeleteFile() { File file = new File("JavaApi" + File.separator + "Hello.txt"); file.delete(); }}
package com.souvc.api;import java.io.File;import java.io.IOException;import org.junit.Test;public class TestFile { @Test public void testDeleteDir() { File file = new File("myDir"); file.delete(); }}
3.7.10 deleteOnExit方法——在虛擬機(jī)終止時(shí),請(qǐng)求刪除文件 167
3.7.11 equals方法——判斷File對(duì)象是否相等 168
3.7.12 exists方法——判斷文件是否存在 168
File的exists方法用于測(cè)試此抽象路徑名表示的文件或目錄是否存在
boolean exists()
若該File表示的文件或目錄存在則返回true,否則返回false。
3.7.13 getAbsoluteFile方法——獲取絕對(duì)路徑的文件對(duì)象 169
3.7.14 getAbsolutePath方法——獲取絕對(duì)路徑的字符串對(duì)象 169
3.7.15 getCanonicalFile方法——返回此抽象路徑名的規(guī)范形式 170
3.7.16 getCanonicalPath方法——返回此抽象路徑名的規(guī)范路徑名字符串 170
3.7.17 getFreeSpace方法——獲取剩余空間 171
3.7.18 getName方法——獲取文件名稱 172
3.7.19 getParent方法——獲取上一級(jí)路徑的字符串 172
3.7.20 getParentFile方法——獲取上一級(jí)路徑的File對(duì)象 173
3.7.21 getPath方法——獲取路徑字符串 173
3.7.22 getTotalSpace方法——獲取總空間大小 173
3.7.23 getUsableSpace方法——精確獲取可寫入空間大小 174
3.7.24 hashCode方法——生成File對(duì)象的哈希碼 174
3.7.25 isAbsolute方法——測(cè)試此路徑名是否為絕對(duì)路徑名 175
3.7.26 isDirectory方法——判斷File對(duì)象是否為目錄 175
File的isDirectory方法用于判斷當(dāng)前File對(duì)象表示的是否為一個(gè)目錄
boolean isDirectory()
返回值:若File對(duì)象表示的是一個(gè)目錄,則返回true
3.7.27 isFile方法——判斷File對(duì)象是否為文件 176
File的isFile方法用于判斷當(dāng)前File對(duì)象表示的是否為一個(gè)文件
boolean isFile()
3.7.28 isHidden方法——判斷File對(duì)象是否設(shè)置隱藏屬性 176
3.7.29 lastModified方法——獲取最后修改時(shí)間 177
3.7.30 length方法——獲取文件長(zhǎng)度 177
File的length方法用于返回由此抽象路徑名表示的文件的長(zhǎng)度
long length()
該方法返回的long值表示該文件所占用的字節(jié)量。
示例:
查看當(dāng)前工程下文件夾下HelloWorld.txt文件的大小。
(1)當(dāng)前工程 JavaApi 下文件夾下,新建JavaApi文件夾,然后新建一個(gè)文本文件 HelloWorld.txt。
(2)使用length屬性。
package com.souvc.api;import java.io.File;import org.junit.Test;public class TestFile { @Test public void testLength() { File file = new File("JavaApi" + File.separator + "HelloWorld.txt"); System.out.PRintln(file + "占用字節(jié)量:" + file.length()); }}
(3)效果如下:
JavaApi/HelloWorld.txt占用字節(jié)量:0
(5)在HelloWorld.txt下加個(gè)hello字符。再運(yùn)行。
JavaApi/HelloWorld.txt占用字節(jié)量:5
3.7.31 list方法——獲取目錄列表的字符串?dāng)?shù)組 178
3.7.32 listFiles方法——獲取目錄列表的File數(shù)組 179
(1)File的listFiles方法用于返回一個(gè)抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件。
File[] listFiles()
返回值:抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件和目錄。如果目錄為空,那么數(shù)組也將為空。如果抽象路徑名不表示一個(gè)目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
(2)通過(guò)listFiles方法我們可以獲取一個(gè)目錄下的所有子項(xiàng),但有些時(shí)候我們并不希望獲取全部子項(xiàng),而是想獲取部分滿足我們實(shí)際需求的子項(xiàng)時(shí),我們可以使用File的重載方法:
File[] listFiles(FileFilter filter)
這里我們看到,該重載方法 要求我們傳入一個(gè)參數(shù),其類型是FileFilter。什么是FileFilter呢? FileFilter是用于抽象路徑名的過(guò)濾器,說(shuō)白了就是定義一個(gè)規(guī)律規(guī)則,那么結(jié)合listFiles方法,我們就可以將滿足此過(guò)濾規(guī)則的子項(xiàng)返回, 其他則忽略。
FileFilter是一個(gè)接口,所以當(dāng)我們需要定義某種過(guò)濾規(guī)則時(shí),我們可以定義一個(gè)類來(lái)實(shí)現(xiàn)這個(gè)接口,而此接口的實(shí)例可傳遞給 File 類的 listFiles(FileFilter) 方法。
File[] list = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(".");
}
});
該方法的參數(shù)FileFilter實(shí)例的accept方法并進(jìn)行過(guò)濾,listFiles方法會(huì)將所有accept方法返回true的子項(xiàng)保留并返回。這個(gè)例子里我們會(huì)將dir中子項(xiàng)的名字以"."開(kāi)頭的返回。
3.7.33 listRoots方法——獲取根目錄的File數(shù)組 181
3.7.34 mkdir方法——創(chuàng)建目錄 182
File的mkdir方法用于創(chuàng)建此抽象路徑名指定的目錄。
boolean mkdir()
返回值:當(dāng)且僅當(dāng)已創(chuàng)建目錄時(shí),返回 true;否則返回 false
package com.souvc.api;import java.io.File;import java.io.IOException;import org.junit.Test;public class TestFile { @Test public void testMkDir() { File dir = new File("myDir"); dir.mkdir(); }}
3.7.35 mkdirs方法——創(chuàng)建完整路徑的所有目錄 183
File的mkdirs方法用于創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。注意,此操作失敗時(shí)也可能已經(jīng)成功地創(chuàng)建了一部分必需的父目錄。
boolean mkdirs()
返回值:當(dāng)且僅當(dāng)已創(chuàng)建目錄以及所有必需的父目錄時(shí),返回 true;否則返回 false
package com.souvc.api;import java.io.File;import java.io.IOException;import org.junit.Test;public class TestFile { @Test public void testMkDirs() { File dir = new File("a" + File.separator + "b" + File.separator + "c"); dir.mkdirs(); }}
3.7.36 renameTo方法——重命名文件或文件夾 183
3.7.37 setExecutable方法——設(shè)置可執(zhí)行屬性 184
3.7.38 setLastModified方法——設(shè)置最后修改時(shí)間 185
3.7.39 setReadable方法——設(shè)置可讀屬性 185
3.7.40 setReadOnly方法——設(shè)置只讀屬性 187
3.7.41 setWritable方法——設(shè)置可寫屬性 187
3.7.42 toString方法——File的字符串格式 188
3.7.43 toURI方法——獲取File的URI 189
3.8 FileInputStream類——文件字節(jié)輸入流 189
3.8.1 構(gòu)造方法——FileInputStream類的構(gòu)造方法 189
3.8.2 available方法——獲取可讀的有效字節(jié)數(shù) 189
3.8.3 close方法——關(guān)閉文件輸入流 190
3.8.4 finalize方法——在銷毀改對(duì)象時(shí)關(guān)閉輸入流 191
3.8.5 getChannel方法——返回與此文件輸入流有關(guān)的惟一FileChannel對(duì)象 191
3.8.6 getFD方法——獲取File對(duì)象連接的FileDescriptor對(duì)象 191
3.8.7 read方法——從文件字節(jié)流讀取數(shù)組 192
3.8.8 skip方法——跳過(guò)并丟棄n個(gè)字節(jié) 193
3.9 FileOutputStream類——文件字節(jié)輸出流 194
3.9.1 構(gòu)造方法——FileOutputStream類的構(gòu)造方法 194
3.9.2 close方法——關(guān)閉文件輸出流并釋放資源 195
3.9.3 finalize方法——流銷毀時(shí)關(guān)閉輸出流 195
3.9.4 getChannel方法——獲取輸出流的FileChannel對(duì)象 195
3.9.5 getFD方法——獲取File對(duì)象連接的FileDescriptor對(duì)象 196
3.9.6 write方法——向文件輸出流寫數(shù)據(jù) 196
3.10 FileReader類——文件的字符輸入流 199
3.10.1 構(gòu)造方法——FileReader類的構(gòu)造方法 199
3.10.2 close方法——關(guān)閉字符輸入流 200
3.10.3 read方法——讀取字符數(shù)據(jù) 200
3.11 FileWriter類——文件的字符輸出流 202
3.11.1 構(gòu)造方法——FileWriter類的構(gòu)造方法 202
3.11.2 close方法——關(guān)閉字符輸出流 202
3.11.3 flush方法——刷新緩沖區(qū) 203
3.11.4 write方法——向字符輸出流寫數(shù)據(jù) 203
3.12 InputStream類——字節(jié)輸入流 205
3.12.1 available方法——獲取有效的可讀取的字節(jié)數(shù) 205
3.12.2 close方法——關(guān)閉輸入流 206
3.12.3 mark方法——在此輸入流中標(biāo)記當(dāng)前的位置 206
3.12.4 markSupported方法——判斷是否支持mark和reset方法 207
3.12.5 read方法——讀取字節(jié)輸入流中的數(shù)據(jù) 207
3.12.6 reset方法——重新定位到最后一次mark()方法時(shí)的位置 209
3.12.7 skip方法——跳過(guò)并丟棄n個(gè)字節(jié) 209
3.13 OutputStream類——字節(jié)輸出流 210
3.13.1 close方法——關(guān)閉字節(jié)輸出流 210
3.13.2 flush方法——刷新緩沖區(qū) 211
3.13.3 write方法——向輸出流寫數(shù)據(jù) 211
3.14 ObjectOutputStream類——對(duì)象輸出流 213
3.14.1 構(gòu)造方法——ObjectOutputStream類的構(gòu)造方法 213
3.14.2 close方法——關(guān)閉對(duì)象輸出流 213
3.14.3 flush方法——刷新緩沖區(qū) 214
3.14.4 writeObject方法——向輸出流寫入對(duì)象 214
3.14.5 writeBytes方法——向輸出流寫入字符串 215
3.14.6 write方法——向輸出流寫入byte值 215
3.14.7 writeChar方法——向輸出流寫入char值 216
3.14.8 writeChars方法——向輸出流寫入String值 217
3.14.9 writeDouble方法——向輸出流寫入double值 217
3.14.10 writeFields方法——將已緩沖的字段寫入流中 217
3.14.11 writeFloat方法——向輸出流寫入float值 218
3.14.12 writeInt方法——向輸出流寫入int值 218
3.14.13 writeLong方法——向輸出流寫入long值 219
3.14.14 writeShort方法——向輸出流寫入short值 219
3.14.15 writeUTF方法——向輸出流寫入float值 219
3.15 ObjectInputStream類——對(duì)象輸入流 220
3.15.1 構(gòu)造方法——ObjectInputStream類的構(gòu)造方法 220
3.15.2 readObject方法——從輸入流讀取對(duì)象 220
3.15.3 readInt方法——從輸入流讀取int值 221
3.15.4 readFloat方法——從輸入流讀取float值 221
3.15.5 readchar方法——從輸入流讀取char值 222
3.16 RandomaccessFile類——隨機(jī)文件訪問(wèn)類 222
Java提供了一個(gè)可以對(duì)文件隨機(jī)訪問(wèn)的操作,訪問(wèn)包括讀和寫操作。該類名為RandomAccessFile。該類的讀寫是基于指針的操作。
3.16.1 構(gòu)造方法——RandomAccessFile類的構(gòu)造方法 222
RandomAccessFile在對(duì)文件進(jìn)行隨機(jī)訪問(wèn)操作時(shí)有兩個(gè)模式,分別為只讀模式(只讀取文件數(shù)據(jù)),和讀寫模式(對(duì)文件數(shù)據(jù)進(jìn)行讀寫)。
只讀模式(只讀取文件數(shù)據(jù)):
在創(chuàng)建RandomAccessFile時(shí),其提供的構(gòu)造方法要求我們傳入訪問(wèn)模式:
RandomAccessFile(File file,String mode) RandomAccessFile(String filename,String mode)
其中構(gòu)造方法的第一個(gè)參數(shù)是需要訪問(wèn)的文件,而第二個(gè)參數(shù)則是訪問(wèn)模式:
r”:字符串”r”表示對(duì)該文件的訪問(wèn)是只讀的。
讀寫模式(對(duì)文件數(shù)據(jù)進(jìn)行讀寫):
創(chuàng)建一個(gè)基于文件訪問(wèn)的讀寫模式的RandomAccessFile我們只需要在第二個(gè)參數(shù)中傳入”rw”即可。
RandomAccessFile raf = new RandomAccessFile(file,”rw”);
3.16.2 close方法——關(guān)閉數(shù)據(jù)流 222
RandomAccessFile在對(duì)文件訪問(wèn)的操作全部結(jié)束后,要調(diào)用close()方法來(lái)釋放與其關(guān)聯(lián)的所有系統(tǒng)資源。
void close()
RandomAccessFile raf = new RandomAccessFile(file,”rw”);
//讀寫操作
raf.close();//訪問(wèn)完畢后要關(guān)閉以釋放系統(tǒng)資源。
3.16.3 getChannel方法——返回此文件的FileChannel對(duì)象 223
3.16.4 getFD方法——返回此流的不透明文件描述符對(duì)象 223
3.16.5 getFilePointer方法——返回文件中的當(dāng)前偏移量 224
RandomAccessFile的讀寫操作都是基于指針的,也就是說(shuō)總是在指針當(dāng)前所指向的位置進(jìn)行讀寫操作。
RandomAccessFile提供了一個(gè)可以獲取當(dāng)前指針位置的方法:
long getFilePointer()
RandomAccessFile在創(chuàng)建時(shí)默認(rèn)指向文件開(kāi)始(第一個(gè)字節(jié)),通過(guò)getFilePointer方法獲取指針位置時(shí)值是"0"。
RandomAccessFile raf = new RandomAccessFile(file,”rw”); System.out.println(raf.getFilePointer());//0 raf.write('A');//寫出一個(gè)字節(jié)后,指針自動(dòng)向后移動(dòng)到下一個(gè)字節(jié)位置 System.out.println(raf.getFilePointer());//1 raf.writeInt(3); System.out.println(raf.getFilePointer());//5 raf.close();
3.16.6 length方法——返回此文件的長(zhǎng)度 224
3.16.7 read方法——讀取一個(gè)數(shù)據(jù)字節(jié) 225
RandomAccessFile提供了一個(gè)可以從文件中讀取字節(jié)的方法:
int read()
該方法會(huì)從RandomAccessFile當(dāng)前指針位置讀取一個(gè)byte(8位) 填充到int的低八位, 高24位為0, 返回值范圍正數(shù): 0~255, 如果返回-1表示讀取到了文件末尾EOF(EOF:End Of File)! 每次讀取后自動(dòng)移動(dòng)文件指針, 準(zhǔn)備下次讀取。
3.16.8 readBoolean方法——從文件讀取一個(gè)boolean值 227
3.16.9 readByte方法——從文件讀取一個(gè)byte值 228
RandomAccessFile提供了一個(gè)可以從文件中批量讀取字節(jié)的方法:
int read(byte[] b)
該方法會(huì)從文件中嘗試最多讀取給定數(shù)組的總長(zhǎng)度的字節(jié)量,并從給定的字節(jié)數(shù)組第一個(gè)位置開(kāi)始,將讀取到的字節(jié)順序存放至數(shù)組中,返回值為實(shí)際讀取到的字節(jié)量 。
3.16.10 readInt方法——從文件讀取一個(gè)int值 228
3.16.11 readChar方法——從文件讀取一個(gè)char值 229
3.16.12 readDouble方法——從文件讀取一個(gè)double值 229
3.16.13 readFloat方法——從文件讀取一個(gè)float值 230
3.16.14 readFully方法——從文件讀取一個(gè)字節(jié)數(shù)組 230
3.16.15 readLine方法——從此文件讀取文本的下一行 232
package com.souvc.common.util; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader; /*** 類名: ReadTxtFile </br>* 描述:讀取文本文件 </br>* 開(kāi)發(fā)人員: souvc </br>* 創(chuàng)建時(shí)間: 2015-11-19 </br>* 發(fā)布版本:V1.0 </br> */public class ReadTxtFile { /** * 功能:Java讀取txt文件的內(nèi)容 * 步驟: * 1:先獲得文件句柄 * 2:獲得文件句柄當(dāng)做是輸入一個(gè)字節(jié)碼流,需要對(duì)這個(gè)輸入流進(jìn)行讀取 * 3:讀取到輸入流后,需要讀取生成字節(jié)流 * 4:一行一行的輸出。readline()。 * 備注:需要考慮的是異常情況 * @param filePath */ public static void readTxtFile(String filePath){ try { String encoding="utf-8"; File file=new File(filePath); if(file.isFile() && file.exists()){ //判斷文件是否存在 InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考慮到編碼格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while((lineTxt = bufferedReader.readLine()) != null){ System.out.println(lineTxt); } read.close(); }else{ System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("讀取文件內(nèi)容出錯(cuò)"); e.printStackTrace(); } } public static void main(String argv[]){ String filePath = "test.txt"; readTxtFile(filePath); } }
新建一個(gè)test.txt文件,放到項(xiàng)目根目錄。
3.16.16 readLong方法——從文件讀取一個(gè)long值 232
3.16.17 readShort方法——從文件讀取一個(gè)short值 233
3.16.18 readUnsignedByte方法——從文件讀取無(wú)符號(hào)byte值 234
3.16.19 readUnsignedShort方法——從文件讀取無(wú)符號(hào)short值 234
3.16.20 readUTF方法——從此文件讀取一個(gè)UTF-8字符串 235
3.16.21 setLength方法——設(shè)置此文件的長(zhǎng)度 235
3.16.22 seek方法——將文件指針移至指定位置 236
RandomAccessFile的提供了一個(gè)方法用于移動(dòng)指針位置。
void seek(long pos)
使用該方法可以移動(dòng)指針到指定位置。
RandomAccessFile raf = new RandomAccessFile(file,”rw”); System.out.println(raf.getFilePointer());//0 raf.write('A');//指針位置1 raf.writeInt(3);//指針位置5 raf.seek(0);//將指針移動(dòng)到文件開(kāi)始處(第一個(gè)字節(jié)的位置) System.out.println(raf.getFilePointer());//0 raf.close();
3.16.23 skipBytes方法——跳過(guò)并丟棄n個(gè)字節(jié) 236
RandomAccessFile的提供了一個(gè)方法可以嘗試跳過(guò)輸入的 n 個(gè)字節(jié)以丟棄跳過(guò)的字節(jié),方法定義為:
int skipBytes(int n)
該方法可能跳過(guò)一些較少數(shù)量的字節(jié)(可能包括零)。這可能由任意數(shù)量的條件引起;在跳過(guò)n個(gè)字節(jié)之前已到達(dá)文件的末尾只是其中的一種可能。此方法不拋出 EOFException。返回跳過(guò)的實(shí)際字節(jié)數(shù)。如果 n 為負(fù)數(shù),則不跳過(guò)任何字節(jié)。
3.16.24 write方法——向此文件寫入指定的字節(jié) 237
RandomAccessFile提供了一個(gè)可以向文件中寫出字節(jié)的方法:
void write(int d)
該方法會(huì)根據(jù)當(dāng)前指針?biāo)谖恢锰帉懭胍粋€(gè)字節(jié),是將參數(shù)int的”低8位”寫出。
RandomAccessFile提供了一個(gè)可以向文件中寫出一組字節(jié)的方法:
void write(byte[] d)
該方法會(huì)根據(jù)當(dāng)前指針?biāo)谖恢锰庍B續(xù)寫出給定數(shù)組中的所有字節(jié),與該方法相似的還有一個(gè)常用方法:
void write(byte[] d,int offset,int len)
該方法會(huì)根據(jù)當(dāng)前指針?biāo)谖恢锰庍B續(xù)寫出給定數(shù)組中的部分字節(jié),這個(gè)部分是從數(shù)組的offset處開(kāi)始,連續(xù)len個(gè)字節(jié)。
3.16.25 writeBoolean方法——將 boolean 寫入文件 239
3.16.26 writeByte方法——將 byte 寫入該文件 239
3.16.27 writeBytes方法——按字節(jié)序列將該字符串寫入該文件 240
3.16.28 writeChars方法——寫入作為字符數(shù)據(jù)的字符串 240
3.16.29 writeDouble方法——寫入double值 241
3.16.30 writeFloat方法——向文件寫入float值 241
3.16.31 writeInt方法——向文件寫入int值 242
3.16.32 writeLong方法——向文件寫入long值 242
3.16.33 writeShort方法——向文件寫入short值 243
3.16.34 writeUTF方法——向文件寫入U(xiǎn)TF-8 編碼的字符串 243
3.17 Reader類——讀取字符流的抽象類 244
3.17.1 close方法——關(guān)閉流 244
3.17.2 mark方法——標(biāo)記流中的當(dāng)前位置 244
3.17.3 markSupported方法——判斷是否支持mark()操作 245
3.17.4 read方法——讀取流中的數(shù)據(jù) 245
3.17.5 ready方法——判斷是否準(zhǔn)備讀取此流 247
3.17.6 reset方法——重置該流 248
3.17.7 skip方法——跳過(guò)并丟棄n個(gè)字節(jié) 248
3.18 Scanner類——簡(jiǎn)單文本掃描器 249
3.18.1 構(gòu)造方法——Scanner類的構(gòu)造方法 249
3.18.2 close方法——關(guān)閉掃描器 250
3.18.3 delimiter方法——返回匹配分隔符的 Pattern 250
3.18.4 findInLine方法——忽略分隔符查找下一個(gè)構(gòu)造模式 250
3.18.5 findWithinHorizon方法——試圖查找下一個(gè)指定模式 251
3.18.6 hasNext方法——掃描器的輸入中是否有另一個(gè)標(biāo)記 252
3.18.7 hasNextBigDecimal方法——下一個(gè)標(biāo)記是否默認(rèn)基數(shù)中的一個(gè) BigDecimal 254
3.18.8 hasNextBigInteger方法——下一個(gè)標(biāo)記是否默認(rèn)基數(shù)中的一個(gè)BigInteger 254
3.18.9 hasNextBoolean方法——下一個(gè)標(biāo)記是否為布爾值 255
3.18.10 hasNextByte方法——下一個(gè)標(biāo)記是否為byte值 256
3.18.11 hasNextDouble方法——下一個(gè)標(biāo)記是否為double值 256
3.18.12 hasNextFloat方法——下一個(gè)標(biāo)記是否為float值 257
3.18.13 hasNextInt方法——下一個(gè)標(biāo)記是否為int值 257
3.18.14 hasNextLine方法——是否存在下一行 258
3.18.15 hasNextLong方法——下一個(gè)標(biāo)記是否為long值 259
3.18.16 hasNextShort方法——下一個(gè)標(biāo)記是否為short值 260
3.18.17 ioException方法——最后拋出的 IOException 260
3.18.18 locale方法——返回此掃描器的語(yǔ)言環(huán)境 261
3.18.19 match方法——最后掃描操作的匹配結(jié)果 261
3.18.20 next方法——讀取下一個(gè)完整標(biāo)記 262
3.18.21 nextBigDecimal方法——讀取下一個(gè)BigDecimal對(duì)象 263
3.18.22 nextBigInteger方法——讀取下一個(gè)BigInteger對(duì)象 264
3.18.23 nextBoolean方法——讀取下一個(gè)boolean值 265
3.18.24 nextByte方法——讀取下一個(gè)byte值 266
3.18.25 nextDouble方法——讀取下一個(gè)double值 267
3.18.26 nextFloat方法——讀取下一個(gè)float值 267
3.18.27 nextInt方法——讀取下一個(gè)int值 268
3.18.28 nextLine方法——讀取下一行文本 269
3.18.29 nextLong方法——讀取下一個(gè)long值 269
3.18.30 nextShort方法——讀取下一個(gè)short值 270
3.18.31 radix方法——返回掃描器的默認(rèn)基數(shù) 271
3.18.32 reset方法——重置掃描器 271
3.18.33 skip方法——忽略分隔符跳過(guò)匹配的輸入信息 272
3.18.34 toString方法——返回此 Scanner 的字符串表示形式 273
3.18.35 useDelimiter方法——設(shè)置為指定分隔模式 273
3.18.36 useLocale方法——設(shè)置為指定的語(yǔ)言環(huán)境 274
3.18.37 useRadix方法——設(shè)置指定基數(shù) 274
3.19 Writer類——寫入字符流的抽象類 275
3.19.1 append方法——添加指定字符 275
3.19.2 close方法——關(guān)閉數(shù)據(jù)流 275
3.19.3 flush方法——刷新流的緩沖 276
3.19.4 write方法——向字符輸出流中寫數(shù)據(jù) 276
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注