国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Java IO(File、字節(jié)輸入輸出流、字符輸入輸出流、打印流)附帶相關(guān)面試題

2023-08-07 09:09 作者:Alphamilk  | 我要投稿

1.File類

file類專門用于管理file文件的,比如文件的創(chuàng)建,刪除,修改名稱等等

以下是File類的常用方法:

方法描述

  • exists()判斷文件或目錄是否存在

  • canRead()判斷文件是否可讀

  • canWrite()判斷文件是否可寫

  • isFile()判斷路徑是否表示一個(gè)文件

  • isDirectory()判斷路徑是否表示一個(gè)目錄

  • getName()獲取文件或目錄的名稱

  • getParent()獲取文件或目錄的父級路徑

  • createNewFile()創(chuàng)建新文件

  • delete()刪除文件或目錄

  • renameTo()重命名文件或目錄

  • list()返回目錄下的文件和目錄列表

  • listFiles()返回目錄下的文件和目錄數(shù)組

?文件路徑需要掌握File.separator分隔符相當(dāng)于"\\",為什么要有這個(gè)東西呢?因?yàn)樵诓煌牟僮飨到y(tǒng)中路徑的分隔符并不一樣,由此出現(xiàn)File.separator,會(huì)根據(jù)自己的系統(tǒng)自動(dòng)轉(zhuǎn)換相應(yīng)的分隔符

1.使用案例:在一個(gè)路徑上,如果存在一個(gè)文件java.txt,則將其刪除,如果不存在則創(chuàng)建一個(gè)文件java.txt,再將其名字改為java.html并且輸出上次的修改日期

2.通過遞歸實(shí)現(xiàn)輸出C盤所有文件內(nèi)容

?*面試題Files的常用方法都有哪些?

exist、createFile、createDirectory、write、read、copy、size、delete、move

?2.字節(jié)輸入輸出流(InputStream Outputstream)

字節(jié)輸入輸出流的最基本單位是byte字節(jié),注意InputStream和OutputStream都是抽象類,所以實(shí)例化對象分別是其子類FileInputStream(File file)與FileOutputStream(File file)

首先介紹OutoutStream字節(jié)輸出流的常用方法:

方法描述

  • write(byte[] buffer)將byte數(shù)組中的數(shù)據(jù)寫入輸出流

  • write(byte[] buffer, int off, int len)將byte數(shù)組中指定范圍的數(shù)據(jù)寫入輸出流

  • write(int b)將單個(gè)字節(jié)寫入輸出流

  • flush()刷新輸出流,確保所有緩沖區(qū)中的數(shù)據(jù)都被寫出

  • close()關(guān)閉輸出流,并釋放相關(guān)資源

?InputStream的常用方法:

方法描述

  • read()讀取輸入流中的下一個(gè)字節(jié)

  • read(byte[] buffer)將輸入流中的數(shù)據(jù)讀入到byte數(shù)組中

  • read(byte[] buffer, int off, int len)將輸入流中的數(shù)據(jù)讀入到指定范圍的byte數(shù)組中

  • skip(long n)跳過并丟棄輸入流中的n個(gè)字節(jié)

  • available()返回可以從輸入流中讀?。ɑ蛱^)的字節(jié)數(shù)

  • close()關(guān)閉輸入流,并釋放相關(guān)資源

案例代碼:

實(shí)現(xiàn)在java.txt中通過OutputStream的wirte函數(shù)實(shí)現(xiàn)第一次覆蓋內(nèi)容實(shí)現(xiàn)輸入Hello,第二次實(shí)現(xiàn)追加在Hello后面加入World

?注意在創(chuàng)建實(shí)例化對象執(zhí)行完函數(shù)后都要進(jìn)行close();除非使用AutoCloseable接口

?案例2:在剛才基礎(chǔ)上讀取時(shí)候跳過Hello

3.Writer與Reader字符輸入輸出流

1.字符輸入流與字節(jié)輸入流有什么區(qū)別:

  1. 數(shù)據(jù)單位:字節(jié)流以字節(jié)為單位進(jìn)行輸入和輸出,而字符流以字符為單位進(jìn)行輸入和輸出。字符流可以直接處理Unicode字符,而字節(jié)流需要通過字符編碼和解碼來處理文本數(shù)據(jù)。

  2. 編碼支持:字符流默認(rèn)使用平臺默認(rèn)的字符編碼(如UTF-8),并提供了更多的字符編碼支持(如UTF-16、ISO-8859-1等)。字節(jié)流不關(guān)心編碼,只是原樣傳輸字節(jié)數(shù)據(jù)。

  3. 數(shù)據(jù)處理:字符流提供了更高級別的數(shù)據(jù)處理功能,能夠方便地讀取和寫入文本數(shù)據(jù),包括按行讀取、字符緩沖等操作。字節(jié)流主要用于二進(jìn)制數(shù)據(jù)的讀寫,處理相對底層。

  4. 效率:由于字符流需要進(jìn)行字符編碼和解碼,所以在處理大量數(shù)據(jù)時(shí)可能會(huì)比字節(jié)流略慢。對于文本數(shù)據(jù)的處理,字符流的效率通常比較高。

綜上所述,字符流更適合處理文本數(shù)據(jù),提供了更多的字符編碼支持和便捷的高級功能;而字節(jié)流適用于處理二進(jìn)制數(shù)據(jù),更為底層和靈活。選擇使用哪種流類型取決于具體的輸入/輸出需求和數(shù)據(jù)類型。

2.Writer與Reader也都是抽象類,所以實(shí)例化的時(shí)候需要向上轉(zhuǎn)型為其子類,FileWriter與FileReader

Writer的常用方法:

方法描述

  • write(int c)將指定字符寫入輸出流

  • write(char[] cbuf)將字符數(shù)組的所有字符寫入輸出流

  • write(String str)將字符串中的所有字符寫入輸出流

  • write(String str, int off, int len)將字符串中指定范圍的字符寫入輸出流

  • append(CharSequence csq)將指定的字符序列追加到輸出流

  • append(CharSequence csq, int start, int end)將指定范圍的字符序列追加到輸出流

  • flush()刷新輸出流,將緩沖區(qū)的數(shù)據(jù)寫入目標(biāo)設(shè)備

  • close()關(guān)閉輸出流,并釋放相關(guān)資源

案例代碼1:

?案例代碼2:

面試題java 中 IO 流分為幾種?

(1)按流劃分,可以分為輸入流和輸出流;

(2)按單位劃分,可以分為字節(jié)流和字符流;

字節(jié)流:inputStream、outputStream;

字符流:reader、writer

?4.打印流

雖然說io中對數(shù)據(jù)的輸出可以通過OutputStream與Writer,但是兩者都有一定的限制,比如OutputStream只允許輸出字節(jié)數(shù)據(jù),Writer只允許輸出字符數(shù)據(jù)和字符串?dāng)?shù)據(jù),在實(shí)際的開發(fā)過程會(huì)有多種數(shù)據(jù)類型的輸出就引出了PrintWriter

下面介紹PrintWriter的常用方法:

  • void print(boolean x)將boolean值打印到輸出流

  • void print(char x)將字符打印到輸出流。

  • void print(int x)將整數(shù)打印到輸出流。

  • void print(long x)將長整數(shù)打印到輸出流。

  • void print(float x)將浮點(diǎn)數(shù)打印到輸出流。

  • void print(double x)將雙精度浮點(diǎn)數(shù)打印到輸出流。

  • void print(char[] x)將字符數(shù)組打印到輸出流。

  • void print(String x)將字符串打印到輸出流。

  • void println()打印一個(gè)換行符。

  • void flush()刷新輸出流,即將緩沖區(qū)的內(nèi)容寫入目標(biāo)設(shè)備。

  • void close()關(guān)閉輸出流,釋放相關(guān)資源。

?1.通過打印一個(gè)print.txt內(nèi)容為:

姓名:黃小龍

年齡15

案例代碼:

?構(gòu)造方法PrintWriter(File file)與PrintWriter(FileOutputStream out)有什么區(qū)別:

`PrintWriter(File file)` 和 `PrintWriter(FileOutputStream out)` 都創(chuàng)建了一個(gè)新的 `PrintWriter` 對象,用于寫入字符流。它們的區(qū)別在于它們的構(gòu)造函數(shù)參數(shù)類型不同。

`PrintWriter(File file)` 構(gòu)造函數(shù)接受一個(gè) `File` 對象作為參數(shù),表示要寫入的文件。當(dāng)您使用這個(gè)構(gòu)造函數(shù)創(chuàng)建一個(gè) `PrintWriter` 對象時(shí),它將自動(dòng)為您創(chuàng)建一個(gè) `FileOutputStream` 對象并將其與您指定的文件關(guān)聯(lián)。這意味著您可以直接向 `PrintWriter` 對象寫入字符,而不必手動(dòng)創(chuàng)建 `FileOutputStream` 對象。

例如,以下代碼使用 `PrintWriter(File file)` 構(gòu)造函數(shù)創(chuàng)建一個(gè)新的 `PrintWriter` 對象,并將其用于向 `example.txt` 文件寫入字符:

```java
File file = new File("example.txt");
PrintWriter writer = new PrintWriter(file);
writer.println("Hello, world!");
writer.close();
```

相比之下,`PrintWriter(FileOutputStream out)` 構(gòu)造函數(shù)接受一個(gè) `FileOutputStream` 對象作為參數(shù),表示要與該對象關(guān)聯(lián)的輸出流。如果您已經(jīng)有一個(gè) `FileOutputStream` 對象,并且希望將其用作 `PrintWriter` 對象的輸出流,可以使用這個(gè)構(gòu)造函數(shù)。

例如,以下代碼創(chuàng)建一個(gè)新的 `FileOutputStream` 對象,并將其用作 `PrintWriter` 對象的輸出流:

```java
FileOutputStream outputStream = new FileOutputStream("example.txt");
PrintWriter writer = new PrintWriter(outputStream);
writer.println("Hello, world!");
writer.close();
```

總之,這兩種構(gòu)造函數(shù)都可以用于創(chuàng)建一個(gè) `PrintWriter` 對象,但是它們的參數(shù)類型不同,并且在用法上略有不同。

Java IO(File、字節(jié)輸入輸出流、字符輸入輸出流、打印流)附帶相關(guān)面試題的評論 (共 條)

分享到微博請遵守國家法律
昌图县| 蓝山县| 望谟县| 昭觉县| 内丘县| 乌拉特前旗| 西吉县| 汝南县| 邵东县| 扶沟县| 胶州市| 绿春县| 双流县| 遂溪县| 延津县| 招远市| 佳木斯市| 鹿泉市| 子洲县| 鲁甸县| 冕宁县| 高淳县| 鄯善县| 海南省| 大丰市| 兴海县| 健康| 灌云县| 楚雄市| 汶上县| 平舆县| 武冈市| 丰镇市| 信阳市| 高雄县| 福泉市| 陇西县| 横山县| 张家港市| 襄垣县| 全州县|