import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
/** I/O工具 以流的形式獲取*/
public class IOUtil {
private static final int DEFAULT_BUFFER_SIZE = 8192;
private IOUtil() {}
/**
* 轉(zhuǎn)換輸入流為字節(jié)數(shù)組
*
* @param inputStream 輸入流
* @return 字節(jié)數(shù)組
* @throws IOException 讀取字節(jié)失敗血当、關(guān)閉流失敗等
*/
public static byte[] toByteArray(InputStream inputStream) throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead;
byte[] data = new byte[DEFAULT_BUFFER_SIZE];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}
return buffer.toByteArray();
}
/**
* 轉(zhuǎn)換輸入流為字符串
*
* @param inputStream 輸入流
* @return UTF-8編碼的字符串
* @throws IOException 讀取字節(jié)失敗澜躺、關(guān)閉流失敗等
*/
public static String toString(InputStream inputStream) throws IOException {
return new String(toByteArray(inputStream), StandardCharsets.UTF_8);
}
/**
* 從文件路徑中讀取字符串
*
* @param path 文件路徑
* @return UTF-8編碼的字符串
* @throws IOException 讀取字節(jié)失敗求妹、關(guān)閉流失敗等
*/
public static String loadStringFromPath(String path) throws IOException {
try (InputStream inputStream = Files.newInputStream(Paths.get(path))) {
return toString(inputStream);
}
}
}
// 文件讀取
public class Files {
/**
* @param fileName:
* @return byte jdk 7之后寫法
* @author Administrator
* @description TODO 以byte【】的方式讀取文件
* @date 2023/2/14 0014 14:17
*/
public static byte[] readFileByBytes(String fileName) throws IOException {
try (InputStream in = new BufferedInputStream(new FileInputStream(fileName)); ByteArrayOutputStream out = new ByteArrayOutputStream()) {
byte[] bytes = new byte[in.available()];
for (int i = 0; (i = in.read(bytes)) != -1; ) {
out.write(bytes, 0, i);
}
return out.toByteArray();
}
}
/**
* @param fileName:
* @param bytes:
* @param append:
* @return void
* @author Administrator
* @description TODO 向文件寫入byte【】
* @date 2023/2/14 0014 14:27
*/
public static void writeFileByBytes(String fileName, byte[] bytes, boolean append) throws IOException {
try (OutputStream out = new BufferedOutputStream(new FileOutputStream(fileName, append))) {
out.write(bytes);
}
}
public static void writeFileByBytes(String fileName, byte[] bytes) throws IOException {
writeFileByBytes(fileName, bytes, false);
// IntStream.range(0,3).forEach();
}
}
IO流操作
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)畅卓,“玉大人擅腰,你說(shuō)我怎么就攤上這事∥膛耍” “怎么了趁冈?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我渗勘,道長(zhǎng)沐绒,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任旺坠,我火速辦了婚禮乔遮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘取刃。我一直安慰自己申眼,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布蝉衣。 她就那樣靜靜地躺著括尸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪病毡。 梳的紋絲不亂的頭發(fā)上濒翻,一...
- 那天,我揣著相機(jī)與錄音啦膜,去河邊找鬼有送。 笑死,一個(gè)胖子當(dāng)著我的面吹牛僧家,可吹牛的內(nèi)容都是我干的雀摘。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開眼八拱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阵赠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肌稻,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤清蚀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后爹谭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枷邪,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年诺凡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了东揣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響运沦,放射性物質(zhì)發(fā)生泄漏泵额。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一携添、第九天 我趴在偏房一處隱蔽的房頂上張望嫁盲。 院中可真熱鬧,春花似錦烈掠、人聲如沸羞秤。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘾蛋。三九已至,卻和暖如春矫限,著一層夾襖步出監(jiān)牢的瞬間哺哼,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓无宿,卻偏偏與公主長(zhǎng)得像茵汰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孽鸡,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 轉(zhuǎn)換流 輸入字節(jié)流的轉(zhuǎn)換流:InputStreamReader 是字節(jié)流通向字符流的橋InputStreamRea...
- 由于IO流中對(duì)象很多蹂午,在實(shí)際開發(fā)中,到底使用哪些對(duì)象呢梭灿? 字節(jié)流 InputStream父類 -FileInp...
- 概述 計(jì)算機(jī)并不區(qū)分二進(jìn)制文件與文本文件画侣。所有的文件都是以二進(jìn)制形式來(lái)存儲(chǔ)的,因此堡妒,從本質(zhì)上說(shuō),所有的文件都是二進(jìn)...
- IO包中的其他類 操作基本數(shù)據(jù)類型 操作字符數(shù)組 操作字符串
- DataInputStream與DataOutputStream可以用于操作基本數(shù)據(jù)類型的流對(duì)象