溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java IO常見面試題有哪些

發(fā)布時間:2021-11-24 17:40:49 來源:億速云 閱讀:170 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“Java IO常見面試題有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java IO常見面試題有哪些”這篇文章吧。

1. 什么是IO流?


它是一種數(shù)據(jù)的流從源頭流到目的地。比如文件拷貝,輸入流和輸出流都包括了。輸入流從文件中讀取數(shù)據(jù)存儲到進程(process)中,輸出流從進程中讀取數(shù)據(jù)然后寫入到目標文件。

2. 字節(jié)流和字符流的區(qū)別。


字節(jié)流在JDK1.0中就被引進了,用于操作包含ASCII字符的文件。JAVA也支持其他的字符如Unicode,為了讀取包含Unicode字符的文件,JAVA語言設計者在JDK1.1中引入了字符流。ASCII作為Unicode的子集,對于英語字符的文件,可以可以使用字節(jié)流也可以使用字符流。

3.Java中流類的超類主要由那些?

java.io.InputStream

java.io.OutputStream

java.io.Reader

java.io.Writer

4. FileInputStream和FileOutputStream是什么?


這是在拷貝文件操作的時候,經常用到的兩個類。在處理小文件的時候,它們性能表現(xiàn)還不錯,在大文件的時候,最好使用BufferedInputStream (或 BufferedReader) 和 BufferedOutputStream (或 BufferedWriter)

5. 字節(jié)流和字符流,你更喜歡使用拿一個?


個人來說,更喜歡使用字符流,因為他們更新一些。許多在字符流中存在的特性,字節(jié)流中不存在。比如使用BufferedReader而不是BufferedInputStreams或DataInputStream,使用newLine()方法來讀取下一行,但是在字節(jié)流中我們需要做額外的操作。

6.System.out.println()是什么?


println是PrintStream的一個方法。out是一個靜態(tài)PrintStream類型的成員變量,System是一個java.lang包中的類,用于和底層的操作系統(tǒng)進行交互。

7.什么是Filter流?


Filter Stream是一種IO流主要作用是用來對存在的流增加一些額外的功能,像給目標文件增加源文件中不存在的行數(shù),或者增加拷貝的性能。

8. 有哪些可用的Filter流?
在java.io包中主要由4個可用的filter Stream。兩個字節(jié)filter stream,兩個字符filter stream. 分別是FilterInputStream, FilterOutputStream, FilterReader and FilterWriter.這些類是抽象類,不能被實例化的。

       有些Filter流的子類:

LineNumberInputStream 給目標文件增加行號

DataInputStream 有些特殊的方法如readInt()readDouble()readLine() 等可以讀取一個 int, double和一個string一次性的,

BufferedInputStream 增加性能

PushbackInputStream 推送要求的字節(jié)到系統(tǒng)中

9.SequenceInputStream的作用?
這個類的作用是將多個輸入流合并成一個輸入流,通過SequenceInputStream類包裝后形成新的一個總的輸入流。在拷貝多個文件到一個目標文件的時候是非常有用的??捎檬褂煤苌俚拇a實現(xiàn)

10.說說PrintStream和PrintWriter


他們兩個的功能相同,但是屬于不同的分類。字節(jié)流和字符流。他們都有println()方法。

11. 在文件拷貝的時候,那一種流可用提升更多的性能?
在字節(jié)流的時候,使用BufferedInputStream和BufferedOutputStream。
在字符流的時候,使用BufferedReader 和 BufferedWriter

12 .說說管道流(Piped Stream)


有四種管道流, PipedInputStream, PipedOutputStream, PipedReader 和 PipedWriter.在多個線程或進程中傳遞數(shù)據(jù)的時候管道流非常有用。

13.說說File類
它不屬于 IO流,也不是用于文件操作的,它主要用于知道一個文件的屬性,讀寫權限,大小等信息。注意:Java7中文件IO發(fā)生了很大的變化,專門引入了很多新的類來取代原來的基于java.io.File的文件IO操作方式。詳情閱讀下面的文章:

Java NIO之擁抱Path和Files

14. 說說RandomAccessFile?


它在java.io包中是一個特殊的類,既不是輸入流也不是輸出流,它兩者都可以做到。他是Object的直接子類。通常來說,一個流只有一個功能,要么讀,要么寫。但是RandomAccessFile既可以讀文件,也可以寫文件。 DataInputStream 和 DataOutStream有的方法,在RandomAccessFile中都存在。

以上是“Java IO常見面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI