Java學(xué)習(xí)-IO流


title: IO流
date: 2020-02-02 21:51:26
tags:
-IO流
categories: Java學(xué)習(xí)


前言

最近系統(tǒng)的學(xué)習(xí)了一下JAVA里面的IO流,IO流是Java的重要特性,通過IO流可以很好的支持網(wǎng)絡(luò)傳輸,這就是為什么說Java是為互聯(lián)網(wǎng)而生的。

一,F(xiàn)ile類

要想了解IO流首先的學(xué)習(xí)file類:

1.file類定義

  1. java.io.file類是專門對文件進(jìn)行操作的類,只能對文件本身進(jìn)行操作,不能對文件內(nèi)容進(jìn)行操作。
  2. File類是“文件和目錄路徑名的抽象表示”,而不是指文件內(nèi)容(IO)。

2.file類的構(gòu)造方法與常用方法

構(gòu)造方法
File(String parent, String child)從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實(shí)例。
File(URI uri)通過將給定的 file: URI轉(zhuǎn)換為抽象路徑名來創(chuàng)建新的 File實(shí)例。
File(String pathname)通過將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建新的 File實(shí)例。
Modifier and Type Method and Description
boolean canRead()測試應(yīng)用程序是否可以讀取由此抽象路徑名表示的文件。
boolean canWrite()測試應(yīng)用程序是否可以修改由此抽象路徑名表示的文件。
boolean createNewFile()當(dāng)且僅當(dāng)具有該名稱的文件尚不存在時,原子地創(chuàng)建一個由該抽象路徑名命名的新的空文件。
boolean delete()刪除由此抽象路徑名表示的文件或目錄。
boolean exists()測試此抽象路徑名表示的文件或目錄是否存在。
File getAbsoluteFile()返回此抽象路徑名的絕對形式。
String getName()返回由此抽象路徑名表示的文件或目錄的名稱。
boolean isDirectory()測試此抽象路徑名表示的文件是否為目錄。
boolean isFile()測試此抽象路徑名表示的文件是否為普通文件。
boolean isHidden()測試此抽象路徑名命名的文件是否為隱藏文件。
long lastModified()返回此抽象路徑名表示的文件上次修改的時間。
long length()返回由此抽象路徑名表示的文件的長度。
boolean mkdir()創(chuàng)建由此抽象路徑名命名的目錄。
boolean mkdirs()創(chuàng)建由此抽象路徑名命名的目錄,包括任何必需但不存在的父目錄。
String[] list()返回一個字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。

二、IO流

2.1流的概念:

流是一組有順序的,有起點(diǎn)和終點(diǎn)的字節(jié)集合,是對數(shù)據(jù)傳輸?shù)目偡Q或抽象。即數(shù)據(jù)在兩設(shè)備間的傳輸稱為流。流的本質(zhì)是數(shù)據(jù)傳輸,根據(jù)數(shù)據(jù)傳輸特性將流抽象為各種類,方便更直觀的進(jìn)行數(shù)據(jù)操作。

2.2IO流的分類:

根據(jù)處理數(shù)據(jù)類型的不同分為:字節(jié)流(二進(jìn)制,可以處理一切文件,文本,音頻等)和字符流(文本文件,只能是純文本,像txt)。

根據(jù)數(shù)據(jù)流向不同分為:輸入流和輸出流。

image

三、字節(jié)流

3.1字節(jié)輸入流OutputStream

OutputStream此抽象類,是表示字節(jié)輸出流的所有類的超類。操作的數(shù)據(jù)都是字節(jié),定義了輸出字節(jié)流的基本共性和方法。

常用方法

Modifier and Type Method and Description
void close()關(guān)閉此輸出流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源。
void flush()刷新此輸出流并強(qiáng)制任何緩沖的輸出字節(jié)被寫出。
void write(byte[] b)b.length字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流。
void write(byte[] b, int off, int len)從指定的字節(jié)數(shù)組寫入 len個字節(jié),從偏移 off開始輸出到此輸出流。
abstract void write(int b)將指定的字節(jié)寫入此輸出流。

3.2字節(jié)輸出流InputStream

InputStream此抽象類,是字節(jié)輸入流的所有類的超類。定義了字節(jié)輸入流的基本共性功能方法。

常用方法

Modifier and Type Method and Description
int available()返回從該輸入流中可以讀?。ɑ蛱^)的字節(jié)數(shù)的估計(jì)值,而不會被下一次調(diào)用此輸入流的方法阻塞。
void close()關(guān)閉此輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。
void mark(int readlimit)標(biāo)記此輸入流中的當(dāng)前位置。
boolean markSupported()測試這個輸入流是否支持 markreset方法。
abstract int read()從輸入流讀取數(shù)據(jù)的下一個字節(jié)。
int read(byte[] b)從輸入流讀取一些字節(jié)數(shù),并將它們存儲到緩沖區(qū) b 。
int read(byte[] b, int off, int len)從輸入流讀取最多 len字節(jié)的數(shù)據(jù)到一個字節(jié)數(shù)組。
void reset()將此流重新定位到上次在此輸入流上調(diào)用 mark方法時的位置。
long skip(long n)跳過并丟棄來自此輸入流的 n字節(jié)數(shù)據(jù)。

四、字符流

4.1讀取字符流Reader

用于讀取字符流的抽象類。 子類必須實(shí)現(xiàn)的唯一方法是read(char [],int,int)和close()。 然而,大多數(shù)子類將覆蓋這里定義的一些方法,以便提供更高的效率,附加的功能或兩者。

構(gòu)造方法

Modifier Constructor and Description
protected Reader()創(chuàng)建一個新的字符流閱讀器,其關(guān)鍵部分將在閱讀器本身上同步。
protected Reader(Object lock)創(chuàng)建一個新的字符流閱讀器,其關(guān)鍵部分將在給定對象上同步。

常用方法

Modifier and Type Method and Description
abstract void close()關(guān)閉流并釋放與之相關(guān)聯(lián)的任何系統(tǒng)資源。
void mark(int readAheadLimit)標(biāo)記流中的當(dāng)前位置。
boolean markSupported()告訴這個流是否支持mark()操作。
int read()讀一個字符
int read(char[] cbuf)將字符讀入數(shù)組。
abstract int read(char[] cbuf, int off, int len)將字符讀入數(shù)組的一部分。
int read(CharBuffer target)嘗試將字符讀入指定的字符緩沖區(qū)。
boolean ready()告訴這個流是否準(zhǔn)備好被讀取。
void reset()重置流。
long skip(long n)跳過字符

4.2寫入字符流流Write

用于寫入字符流的抽象類。 子類必須實(shí)現(xiàn)的唯一方法是write(char [],int,int),flush()和close()。 然而,大多數(shù)子類將覆蓋這里定義的一些方法,以便提供更高的效率,附加的功能或兩者。

構(gòu)造方法

Modifier Constructor and Description
protected Writer()創(chuàng)建一個新的人物流作家,其關(guān)鍵部分將在作者本身上同步。
protected Writer(Object lock)創(chuàng)建一個新的字符流寫入器,其關(guān)鍵部分將在給定對象上進(jìn)行同步。

常用方法

Modifier and Type Method and Description
Writer append(char c)將指定的字符附加到此作者。
Writer append(CharSequence csq)將指定的字符序列附加到此作者。
Writer append(CharSequence csq, int start, int end)將指定字符序列的子序列附加到此作者。
abstract void close()關(guān)閉流,先刷新。
abstract void flush()刷新流。
void write(char[] cbuf)寫入一個字符數(shù)組。
abstract void write(char[] cbuf, int off, int len)寫入字符數(shù)組的一部分。
void write(int c)寫一個字符
void write(String str)寫一個字符串
void write(String str, int off, int len)寫一個字符串的一部分。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容