本篇文章為大家帶來了關於java的相關知識,其中主要介紹了IO操作的相關問題,包括了字節流和字符流等相關內容,下面一起來看一下,希望對大家有幫助。
推薦學習:《java影片教學》
前言:本章具體介紹了位元組流、字元流的基本使用方法,圖解穿插程式碼實作。
IO操作
##java.io.InputStream 輸入流,主要是用來讀取文件內容的。
java.io.OutputStream 輸出流,主要是用來將內容位元組寫入檔案的。
FileInputStream
該流用於從檔案讀取數據,它的物件可以用關鍵字 new 來建立。
有多種建構方法可用來建立物件。
可以使用字串類型的檔案名稱來建立一個輸入流物件來讀取檔案
InputStream f = new FileInputStream("D:/hello");
也可以使用一個檔案物件來建立一個輸入流物件來讀取文件。我們首先得使用File() 方法來建立一個檔案物件:
File f = new File("D:/hello");InputStream in = new FileInputStream(f);
FileOutputStream
該類別用來建立一個檔案並向文件中寫數據。
如果該流在開啟檔案進行輸出之前,目標檔案不存在,那麼該流會建立該檔案。
有兩個建構方法可以用來建立 FileOutputStream 物件。
使用字串類型的檔案名稱來建立一個輸出流物件:
OutputStream f = new FileOutputStream("D:/hello");
#也可以使用一個檔案物件來建立一個輸出流來寫入檔案。我們首先得使用File()方法來建立一個檔案物件:
File f = new File("D:/hello");OutputStream fOut = new FileOutputStream(f);
位元組流讀寫案例
讀取D:/ hello.txt檔案中的內容再輸入到檔案D:/test.txt中
public class Mk { public static void main(String[] args) throws IOException { File file=new File("D://hello.txt"); File file1= new File("D://test.txt"); InputStream is=new FileInputStream(file); OutputStream out=new FileOutputStream(file1); //定义byte数组用来暂存数据 byte[] buf = new byte[1024]; //读取Is中的内容存到buf is.read(buf); //将buf中的内容写入out out.write(buf); is.close(); out.close(); } }
字元流
FileWriter
寫入檔案實例
public class A { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("user.txt", true); fw.write("你好中国1"); fw.write("你好中国2"); fw.write("你好中国3"); fw.close(); }}
#FileReader
##讀取文件實例這裡我把內容換行了
br.ready()是判斷這一行流是否為空
br.readLine()是輸出一行,然後自動遊標指向下一行。public class A { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("user.txt")); while (br.ready()) { System.out.println(br.readLine()); } br.close(); }}
位元組流和字元流使用是非常相似的,那麼除了操作程式碼的不同之外,還有哪些不同呢?
位元組流在操作的時候本身是不會用到緩衝區(記憶體)的,是與檔案本身直接操作的,而字元流在操作的時候是使用到緩衝區的位元組流在操作文件時,即使不關閉資源(close方法),文件也能輸出,但是如果字元流不使用close方法的話,則不會輸出任何內容,說明字元流用的是緩衝區,並且可以使用flush方法強制進行刷新緩衝區,這時才能在不close的情況下輸出內容
那開發中究竟用字節流好還是用字元流好呢?
在所有的硬碟上保存檔案或進行傳輸的時候都是以位元組的方法進行的,包括圖片也是按字節完成,而字元是只有在記憶體中才會形成的,所以使用位元組的操作是最多的。推薦學習:《如果要java程式實作一個拷貝功能,應該選用位元組流進行操作(可能拷貝的是圖片),並且採用邊讀邊寫的方式(節省記憶體)。
java影片教學》
以上是JAVA學習IO操作之位元組流與字元流(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!