seo網(wǎng)站排名后退權(quán)威發(fā)布
文章目錄
- InputStream和Reader
- Scanner
- NIO
- 外傳
一般讀取文件類(lèi)的使用字符流即可
InputStream和Reader
InputStream和Reader是Java IO中的兩個(gè)重要的抽象基類(lèi),InputStream是二進(jìn)制流,Reader是字符流。使用InputStream或者Reader讀取文件內(nèi)容可以幫助我們讀取文本文件(非二進(jìn)制文件)的內(nèi)容。
下面是一個(gè)使用Reader讀取文件內(nèi)容的示例代碼:
File file = new File("test.txt");
try {FileReader reader = new FileReader(file);BufferedReader br = new BufferedReader(reader);String str;while ((str = br.readLine()) != null) {System.out.println(str);}br.close();reader.close();
} catch (IOException e) {e.printStackTrace();
}
使用FileReader類(lèi)讀取文件內(nèi)容,并將FileReader對(duì)象傳入BufferedReader類(lèi)中以便于一次讀取一行,然后逐行讀取并輸出文件內(nèi)容。
Scanner
Scanner是Java內(nèi)置的一個(gè)讀取用戶輸入的類(lèi),他也可以用于讀取文件內(nèi)容。使用Scanner讀取文件內(nèi)容需要先創(chuàng)建File對(duì)象,并將其傳入Scanner構(gòu)造函數(shù)中。
下面是一個(gè)使用Scanner讀取文件內(nèi)容的示例代碼:
File file = new File("test.txt");
try {Scanner scanner = new Scanner(file);while (scanner.hasNextLine()) {System.out.println(scanner.nextLine());}scanner.close();
} catch (FileNotFoundException e) {e.printStackTrace();
}
使用Scanner類(lèi)讀取文件內(nèi)容,并通過(guò)while循環(huán)和hasNextLine()方法逐行讀取文件內(nèi)容并輸出到控制臺(tái)。
NIO
Java NIO(New IO)是從Java 1.4開(kāi)始引入的一組新IO API。相較于之前的IO API,NIO提供了更高效的IO操作和更多的控制選項(xiàng)。下面是一個(gè)使用NIO讀取文件內(nèi)容的示例代碼:
File file = new File("test.txt");
try {FileInputStream fileInputStream = new FileInputStream(file);FileChannel fileChannel = fileInputStream.getChannel();ByteBuffer byteBuffer = ByteBuffer.allocate((int) file.length());fileChannel.read(byteBuffer);byteBuffer.flip();byte[] bytes = byteBuffer.array();System.out.println(new String(bytes, 0, bytes.length));fileInputStream.close();
} catch (IOException e) {e.printStackTrace();
}
使用FileInputStream讀取文件內(nèi)容,并調(diào)用getChannel()方法獲取FileChannel對(duì)象,然后調(diào)用read()方法將文件內(nèi)容讀入到ByteBuffer緩沖區(qū)中。最后通過(guò)flip()方法將緩沖區(qū)設(shè)置為讀模式,并通過(guò)byteBuffer.array()將緩沖區(qū)中的內(nèi)容轉(zhuǎn)換為字節(jié)數(shù)組,再通過(guò)new String()方法將字節(jié)數(shù)組轉(zhuǎn)換為字符串并輸出到控制臺(tái)。
外傳
😜 原創(chuàng)不易,如若本文能夠幫助到您的同學(xué)
🎉 支持我:關(guān)注我+點(diǎn)贊👍+收藏??
📝 留言:探討問(wèn)題,看到立馬回復(fù)
💬 格言:己所不欲勿施于人 揚(yáng)帆起航、游歷人生、永不言棄!🔥