網站首頁 編程語言 正文
IO流分類以及分別使用字節流、字符流復制文本文件、復制圖片
- 前言
- 一、分別使用字節流、字符流復制文本文件
- 二、分別使用字節流、字符流復制圖片文件
- 1.字符流可以復制圖片,但是打不開,報錯
- 2.字節流可以復制圖片,正常使用
- 總結
前言
IO流分類:
*流向
輸入流 讀取數據 FileReader Reader
輸出流 寫出數據 FileWriter Writer
*數據類型
- 字節流
字節輸入流 讀取數據 InputStream
字節輸出流 寫出數據 OutputStream - 字符流
字符輸入流 讀取數據 Reader
字符輸出流 寫出數據 Writer。
一、分別使用字節流、字符流復制文本文件
//創建字符輸入流對象
FileReader fr = new FileReader("IODemo.java");
//創建字符輸出流對象
FileWriter fw = new FileWriter("d:\\IODemo.java");
//一次讀寫一個字符
/*
int ch;
while((ch = fr.read()) != -1) {
fw.write(ch);
fw.flush();
}*/
//一次讀寫一個字符數組
int len;//用于存儲讀到的字符個數
char[] chs = new char[1024];
while((len = fr.read(chs)) != -1) {
fw.write(chs,0,len);
fw.flush();
}
//釋放資源
fw.close();
fr.close();
//創建字節輸入流對象
FileInputStream fis = new FileInputStream("IODemo.java");
//創建字節輸出流對象
FileOutputStream fos = new FileOutputStream("d:\\IODemo.java");
//一次讀寫一個字節
/*int by;
while((by = fis.read()) != -1) {
fos.write(by);
}*/
//一次讀寫一個字節數組
int len;//存儲讀到的字節個數
byte[] bys = new byte[1024];
while((len = fis.read(bys)) != -1) {
fos.write(bys,0,len);
}
//釋放資源
fos.close();
fis.close();
二、分別使用字節流、字符流復制圖片文件
1.字符流可以復制圖片,但是打不開,報錯
/**
* 字符流
* @throws FileNotFoundException
* @throws IOException
*/
private static void method() throws FileNotFoundException, IOException {
//創建字符輸入流對象
FileReader fr = new FileReader("圖片.jpg");
//創建字符輸出流對象
FileWriter fw = new FileWriter("d:\\圖片.jpg");
//一次讀寫一個字符數組
int len;//用于存儲讀到的字符個數
char[] chs = new char[1024];
while((len = fr.read(chs)) != -1) {
fw.write(chs,0,len);
fw.flush();
}
//釋放資源
fw.close();
fr.close();
}
2.字節流可以復制圖片,正常使用
/**
* 字節流
* @throws FileNotFoundException
* @throws IOException
*/
private static void method2() throws FileNotFoundException, IOException {
//創建字節輸入流對象
FileInputStream fis = new FileInputStream("圖片.jpg");
//創建字節輸出流對象
FileOutputStream fos = new FileOutputStream("d:\\圖片.jpg");
//一次讀寫一個字節數組
int len;//用于存儲讀到的字節個數
byte[] bys = new byte[1024];
while((len = fis.read(bys)) != -1) {
fos.write(bys,0,len);
}
//釋放資源
fos.close();
fis.close();
}
總結
- 二進制文件只能使用字節流進行復制,圖片、視頻(使用windows自帶記事本打開讀不懂的)
- 文本文件的復制既可使用字符流,也可以使用字節流
原文鏈接:https://blog.csdn.net/weixin_44804207/article/details/125724471
- 上一篇:查看nginx連接數
- 下一篇:File類的基本運用、查找、刪除
相關推薦
- 2022-05-27 五個經典鏈表OJ題帶你進階C++鏈表篇_C 語言
- 2024-03-22 【IDEA】maven項目刷新依賴的兩種方式
- 2022-08-01 go中import包的大坑解決方案_Golang
- 2022-11-08 uni.showToast和uni.navigateTo不能同時執行 , 怎么解決
- 2023-04-26 C語言函數調用基礎應用詳解_C 語言
- 2022-11-25 PostgreSQL自增主鍵用法及在mybatis中的使用教程_PostgreSQL
- 2022-12-24 TS裝飾器bindThis優雅實現React類組件中this綁定_React
- 2022-08-27 .NET集成ORM框架HiSql_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支