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類是專門對(duì)文件進(jìn)行操作的類,只能對(duì)文件本身進(jìn)行操作,不能對(duì)文件內(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()測(cè)試應(yīng)用程序是否可以讀取由此抽象路徑名表示的文件。
boolean canWrite()測(cè)試應(yīng)用程序是否可以修改由此抽象路徑名表示的文件。
boolean createNewFile()當(dāng)且僅當(dāng)具有該名稱的文件尚不存在時(shí),原子地創(chuàng)建一個(gè)由該抽象路徑名命名的新的空文件。
boolean delete()刪除由此抽象路徑名表示的文件或目錄。
boolean exists()測(cè)試此抽象路徑名表示的文件或目錄是否存在。
File getAbsoluteFile()返回此抽象路徑名的絕對(duì)形式。
String getName()返回由此抽象路徑名表示的文件或目錄的名稱。
boolean isDirectory()測(cè)試此抽象路徑名表示的文件是否為目錄。
boolean isFile()測(cè)試此抽象路徑名表示的文件是否為普通文件。
boolean isHidden()測(cè)試此抽象路徑名命名的文件是否為隱藏文件。
long lastModified()返回此抽象路徑名表示的文件上次修改的時(shí)間。
long length()返回由此抽象路徑名表示的文件的長(zhǎng)度。
boolean mkdir()創(chuàng)建由此抽象路徑名命名的目錄。
boolean mkdirs()創(chuàng)建由此抽象路徑名命名的目錄,包括任何必需但不存在的父目錄。
String[] list()返回一個(gè)字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。

二、IO流

2.1流的概念:

流是一組有順序的,有起點(diǎn)和終點(diǎn)的字節(jié)集合,是對(duì)數(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個(gè)字節(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ì)值,而不會(huì)被下一次調(diào)用此輸入流的方法阻塞。
void close()關(guān)閉此輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源。
void mark(int readlimit)標(biāo)記此輸入流中的當(dāng)前位置。
boolean markSupported()測(cè)試這個(gè)輸入流是否支持 markreset方法。
abstract int read()從輸入流讀取數(shù)據(jù)的下一個(gè)字節(jié)。
int read(byte[] b)從輸入流讀取一些字節(jié)數(shù),并將它們存儲(chǔ)到緩沖區(qū) b
int read(byte[] b, int off, int len)從輸入流讀取最多 len字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組。
void reset()將此流重新定位到上次在此輸入流上調(diào)用 mark方法時(shí)的位置。
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)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在閱讀器本身上同步。
protected Reader(Object lock)創(chuàng)建一個(gè)新的字符流閱讀器,其關(guān)鍵部分將在給定對(duì)象上同步。

常用方法

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()告訴這個(gè)流是否支持mark()操作。
int read()讀一個(gè)字符
int read(char[] cbuf)將字符讀入數(shù)組。
abstract int read(char[] cbuf, int off, int len)將字符讀入數(shù)組的一部分。
int read(CharBuffer target)嘗試將字符讀入指定的字符緩沖區(qū)。
boolean ready()告訴這個(gè)流是否準(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)建一個(gè)新的人物流作家,其關(guān)鍵部分將在作者本身上同步。
protected Writer(Object lock)創(chuàng)建一個(gè)新的字符流寫入器,其關(guān)鍵部分將在給定對(duì)象上進(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)寫入一個(gè)字符數(shù)組。
abstract void write(char[] cbuf, int off, int len)寫入字符數(shù)組的一部分。
void write(int c)寫一個(gè)字符
void write(String str)寫一個(gè)字符串
void write(String str, int off, int len)寫一個(gè)字符串的一部分。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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