欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java全面解析IO流相關(guān)知識(shí)

 更新時(shí)間:2021年08月30日 15:09:20   作者:lnwd___  
這篇文章主要介紹了IO流相關(guān)知識(shí),包括File,字節(jié)流,字符流,特殊操作流(標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流,對(duì)象序列化與反序列化,properties與IO流結(jié)合)相關(guān)知識(shí)的總結(jié)

IO流相關(guān)知識(shí)(File,字節(jié)流,字符流,特殊操作流(標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流,對(duì)象序列化與反序列化,properties與IO流結(jié)合))相關(guān)知識(shí)總結(jié)

前言

流是一種抽象概念,它代表了數(shù)據(jù)的無結(jié)構(gòu)化傳遞。按照流的方式進(jìn)行輸入輸出,數(shù)據(jù)被當(dāng)成無結(jié)構(gòu)的字節(jié)序或字符序列。從流中取得數(shù)據(jù)的操作稱為提取操作,而向流中添加數(shù)據(jù)的操作稱為插入操作。用來進(jìn)行輸入輸出操作的流就稱為IO流。換句話說,IO流就是以流的方式進(jìn)行輸入輸出

一、File

1.File類的概述和構(gòu)造方法

在這里插入圖片描述
在這里插入圖片描述

通過如上的圖相信對(duì)文件打的相關(guān)應(yīng)用已經(jīng)有了初步的認(rèn)識(shí),因?yàn)榉庋b的不是真正存在的文件,僅僅是一個(gè)路徑名而已,所以沒有那個(gè)路徑的文件也可以寫,不會(huì)報(bào)錯(cuò),將來是把不存在的轉(zhuǎn)換為具體存在的。

2.File類創(chuàng)建功能

在這里插入圖片描述

這里需要注意的是:不能根據(jù)目錄來判斷是創(chuàng)建的文件還是目錄,而是通過調(diào)用的方法來判斷的,路徑那個(gè)只是名字而已,文件和目錄的名字也不能是一樣的

3.File類判斷和獲取功能

在這里插入圖片描述

4.File類刪除功能

在這里插入圖片描述

注意:File的相關(guān)操作與字節(jié)流沒有繼承的關(guān)系,所以要?jiǎng)h除文件的話還是的用File的刪除功能才可

二、字節(jié)流

1.IO流的概述和分類

概述

在這里插入圖片描述

分類

在這里插入圖片描述

2.字節(jié)流寫數(shù)據(jù)

在這里插入圖片描述

記得一定要釋放資源

3.字節(jié)流寫數(shù)據(jù)的兩個(gè)小問題

字節(jié)流寫數(shù)據(jù)如何換行

在這里插入圖片描述

不同的操作系統(tǒng)的換行是不一樣的

字節(jié)流寫數(shù)據(jù)如何實(shí)現(xiàn)追加寫入

在這里插入圖片描述

值得注意的是是在文件的后面添加,而原來的數(shù)據(jù)還是有的,所以在用的時(shí)候就要考慮一下是怎樣使用自己的文件的

4.字節(jié)流寫入數(shù)據(jù)假異常處理

在這里插入圖片描述

就是簡單的異常處理而已,如果不使用處理的話就拋出就可以了

5.字節(jié)流讀數(shù)據(jù)(重點(diǎn))

一次讀一個(gè)字節(jié)的數(shù)據(jù)

在這里插入圖片描述

標(biāo)準(zhǔn)的代碼格式就是這樣的

在這里插入圖片描述

一次讀一個(gè)數(shù)組的數(shù)據(jù)

在這里插入圖片描述
在這里插入圖片描述

字節(jié)流讀數(shù)據(jù)其實(shí)很簡單,這里需要注意的是字節(jié)流讀數(shù)據(jù)的話可以有兩種方法,至于使用怎樣的方法就得取決于自己得使用就行了

6.字節(jié)緩沖流

在這里插入圖片描述
在這里插入圖片描述

7.如何選擇怎樣得數(shù)據(jù)讀取呢?

在這里插入圖片描述

從圖中可以看出字節(jié)緩沖流得讀取比基本得字節(jié)讀取要快很多,如果要節(jié)省時(shí)間得話就可以考慮用字節(jié)緩沖流來進(jìn)行字節(jié)流得讀取

三、字符流

1.為什么會(huì)出現(xiàn)字符流?

在這里插入圖片描述

所以他的底層操作的實(shí)質(zhì)還是字節(jié)流

編碼表

在這里插入圖片描述

這里需要注意的是用的什么編碼就必須用對(duì)應(yīng)的解碼,否則就會(huì)出現(xiàn)亂碼的情況

2.字符串中的編碼解碼問題

在這里插入圖片描述
在這里插入圖片描述

3.如何實(shí)現(xiàn)解決編譯解碼的問題

在這里插入圖片描述

其實(shí)寫的時(shí)候是寫在了緩沖區(qū),并沒寫在文件里,可以刷新,也可以關(guān)閉流它會(huì)自動(dòng)的刷新

代碼理解

在這里插入圖片描述

4.字符流寫數(shù)據(jù)的方法

在這里插入圖片描述

在這里插入圖片描述

5.字符流讀數(shù)據(jù)的方法

在這里插入圖片描述

在這里插入圖片描述

字節(jié)流與字符流的讀數(shù)據(jù)的思想是一樣的只不過一個(gè)是字符,一個(gè)是字節(jié)而已

6.字符流復(fù)制文件

其方法和字節(jié)流的方法一樣,只是一個(gè)是字節(jié)一個(gè)是字符而已
方法一:一個(gè)一個(gè)的字符進(jìn)行的復(fù)制
方法二:一個(gè)字符數(shù)組一個(gè)字符數(shù)組的復(fù)制

準(zhǔn)換流
OutputStreamWriter 他又一個(gè)子類是:FileWriter
InputStreamReader 它有一個(gè)子類是: FileReader
我們?cè)趶?fù)制文件等相關(guān)操作的時(shí)候可以用他的子類進(jìn)行操作,書寫更加的簡單,但是,在進(jìn)行編碼問題解決的時(shí)候還是得用轉(zhuǎn)換流才可以

7.字符緩沖流

在這里插入圖片描述
在這里插入圖片描述

字符緩沖流的特有功能

在這里插入圖片描述

那么可以做什么呢?
我們可以通過其中特有的功能進(jìn)行文件的復(fù)制等
需要注意的是readline只是讀的是內(nèi)容,不讀其他的

8.字節(jié),字符流小結(jié)

(此時(shí)有個(gè)使用的問題就是用哪兒文件的讀取就寫哪兒,寫在一起容易出問題,還有就是一定要釋放資源)
字節(jié)流

在這里插入圖片描述

字符流

在這里插入圖片描述

關(guān)于亂碼的問題
個(gè)人認(rèn)為出現(xiàn)亂碼是因?yàn)槿绻玫氖亲止?jié)流的話用char來強(qiáng)制轉(zhuǎn)換顯示的話就是只有其中的一部分并沒有把一個(gè)漢字的那個(gè)文字表達(dá)組如(【-1,23,36】)表達(dá)完整,但是如果用new String()來顯示的話會(huì)表達(dá)完整(可能是里面有相應(yīng)的方法,具體不清楚,知道就行了),如果用的是字符流的話就是用的默認(rèn)的編碼以及你相應(yīng)要求的編碼來表達(dá),所以就不會(huì)出現(xiàn)亂碼的問題了

9.復(fù)制文件的異常處理

在這里插入圖片描述

在這里插入圖片描述

四、特殊操作流

1.標(biāo)準(zhǔn)輸入流

在這里插入圖片描述

在這里插入圖片描述

2.標(biāo)準(zhǔn)輸出流

在這里插入圖片描述
在這里插入圖片描述

3.打印流

字節(jié)打印流

在這里插入圖片描述
在這里插入圖片描述

字符打印流

在這里插入圖片描述
在這里插入圖片描述

4.對(duì)象序列化流與對(duì)象反序列化流(它是基于字節(jié)流上的)

對(duì)象序列化流

在這里插入圖片描述
在這里插入圖片描述

對(duì)象反序列化流

在這里插入圖片描述

在這里插入圖片描述

5.解決對(duì)象序列化流的三個(gè)問題

在這里插入圖片描述
在這里插入圖片描述

6.Properties

在這里插入圖片描述

代碼理解(properties作為map集合的使用)

在這里插入圖片描述

properties作為集合特有的方法

在這里插入圖片描述

第一個(gè)是寫數(shù)據(jù)進(jìn)入集合
第二個(gè)是根據(jù)鍵得到值
第三個(gè)是得到鍵得集合

在這里插入圖片描述

Properties和IO流結(jié)合的方法

集合數(shù)據(jù)寫到文件

在這里插入圖片描述

文件寫到集合

在這里插入圖片描述

總結(jié)

IO流其實(shí)很簡單,重點(diǎn)是要掌握其中的字節(jié)流讀寫方法,以及字符流的讀寫方法和Properties與IO流結(jié)合的進(jìn)行使用。

到此這篇關(guān)于Java全面解析IO流相關(guān)知識(shí)的文章就介紹到這了,更多相關(guān)Java IO流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)器的示例代碼

    Spring整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)器的示例代碼

    本篇文章主要介紹了Spring整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)器的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    @ComponentScan的作用就是根據(jù)定義的掃描路徑,把符合掃描規(guī)則的類裝配到spring容器中,下面這篇文章主要給大家介紹了關(guān)于spring?boot自動(dòng)裝配之@ComponentScan注解用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java編程Socket實(shí)現(xiàn)多個(gè)客戶端連接同一個(gè)服務(wù)端代碼

    Java編程Socket實(shí)現(xiàn)多個(gè)客戶端連接同一個(gè)服務(wù)端代碼

    這篇文章主要介紹了Java編程Socket實(shí)現(xiàn)多個(gè)客戶端連接同一個(gè)服務(wù)端代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Spring?依賴查找的使用小結(jié)

    Spring?依賴查找的使用小結(jié)

    在不同的編程框架和容器中,依賴查找的方式可能會(huì)有所不同,本文主要介紹了Spring依賴查找的使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Java中的CompletableFuture原理與用法

    Java中的CompletableFuture原理與用法

    CompletableFuture 是由Java8引入的,這讓我們編寫清晰可讀的異步代碼變得更加容易,該類功能比Future 更加強(qiáng)大,在Java中CompletableFuture用于異步編程,異步通常意味著非阻塞,運(yùn)行任務(wù)單獨(dú)的線程,與主線程隔離,這篇文章介紹CompletableFuture原理與用法,一起看看吧
    2024-01-01
  • 詳解Java實(shí)現(xiàn)多線程的三種方式

    詳解Java實(shí)現(xiàn)多線程的三種方式

    線程(英語:thread)是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。本文總結(jié)了Java多線程是三種實(shí)現(xiàn)方式,需要的可以參考一下
    2022-03-03
  • Java中5種方式實(shí)現(xiàn)String反轉(zhuǎn)

    Java中5種方式實(shí)現(xiàn)String反轉(zhuǎn)

    下面小編就為大家?guī)硪黄狫ava中5種方式實(shí)現(xiàn)String反轉(zhuǎn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。
    2016-06-06
  • Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel的操作方法

    Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel的操作方法

    在做一個(gè)?SpringBoot?前后端分離項(xiàng)目的時(shí)候,需要將數(shù)據(jù)存到?Excel中,用戶可以下載?Excel,具體實(shí)現(xiàn)是采用?Apache?強(qiáng)大的?POI,本文給大家介紹Springboot?前后端分離項(xiàng)目使用?POI?生成并導(dǎo)出?Excel相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-09-09
  • MybatisX中xml映射文件中命名空間爆紅的解決

    MybatisX中xml映射文件中命名空間爆紅的解決

    本文主要介紹了MybatisX中xml映射文件中命名空間爆紅的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • JFreeChart插件實(shí)現(xiàn)的折線圖效果實(shí)例

    JFreeChart插件實(shí)現(xiàn)的折線圖效果實(shí)例

    這篇文章主要介紹了JFreeChart插件實(shí)現(xiàn)的折線圖效果,結(jié)合實(shí)例形式分析了基于JFreeChart繪制折線圖的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08

最新評(píng)論