一篇學(xué)會DataInputStream、DataOutputStream、PrintStream類
大家好,我是Java進(jìn)階者。
前言
本文主要學(xué)習(xí)DataInputStream、DataOutputStream、PrintStream類。通過IO流存儲對象,有時候我們并不需要存儲整個對象的信息,只要存儲對象的成員數(shù)據(jù)。這時候就不用ObjectInputStream和ObjectOutputStream的流。PrintStream是打印輸出流。接下來小編帶大家一起來學(xué)習(xí)!
一、DataInputStream類
1.DataInputStream類是數(shù)據(jù)輸入流它和機(jī)器無關(guān)的操作數(shù)據(jù)流,讀取Java原始的數(shù)據(jù)。讀取一個數(shù)值就不必要知道這個數(shù)值的多少字節(jié)的。
2.DataInputStream類構(gòu)造方法:
public DataInputStream(InputStream in):創(chuàng)建指定的數(shù)據(jù)輸入流讀取DataInputStream。in參數(shù)表示指定的輸入流
3.DataInputStream類方法如下圖所示:
《該圖片引用菜鳥教程》
4.DataInputStream類方法的例子實現(xiàn):
- import java.io.*;
- public class P19 {
- public static void main(String[] args) throws Exception {
- // TODO Auto-generated method stub
- FileInputStream fs=new FileInputStream("text/test01");
- BufferedInputStream bs=new BufferedInputStream(fs);
- DataInputStream ds=new DataInputStream(bs);
- //讀一個int類型
- System.out.println(ds.readInt());
- //讀一個byte類型
- System.out.println(ds.readByte());
- //讀一個char類型
- System.out.println(ds.readChar());
- //讀一個double類型
- System.out.println(ds.readDouble());
- //讀一個boolean類型
- System.out.println(ds.readBoolean());
- //寫一個轉(zhuǎn)換成UTF-8的字符串
- System.out.println(ds.readUTF());
- //關(guān)閉流
- ds.close();
- }
- }
運行的結(jié)果如下圖所示:
二、DataOutputStream類
1.DataOutputStream類是數(shù)據(jù)輸出流它和機(jī)器無關(guān)的操作數(shù)據(jù)流,讀取Java原始的數(shù)據(jù)。
2.DataOutputStream類的構(gòu)造方法:
public DataOutputStream(OutputStream out):創(chuàng)建指定的數(shù)據(jù)輸出流寫入DataInputStream。out參數(shù)表示指定的輸出流
3.DataOutputStream類方法如下圖所示:
《該圖片引用菜鳥教程》
4.DataOutputStream類方法的例子實現(xiàn):
- import java.io.*;
- public class P20 {
- public static void main(String[] args) throws Exception {
- // TODO Auto-generated method stub
- FileOutputStream fos=new FileOutputStream("text/test01");
- BufferedOutputStream bos=new BufferedOutputStream(fos);
- DataOutputStream dos=new DataOutputStream(bos);
- //寫一個int類型
- dos.writeInt(100);
- //寫一個byte類型
- dos.writeByte(20);
- //寫一個char類型
- dos.writeChar('a');
- //寫一個double類型
- dos.writeDouble(3.15151777);
- //寫一個boolean類型
- dos.writeBoolean(true);
- //寫一個轉(zhuǎn)換成UTF-8的字符串
- dos.writeUTF("Hello JAVA!");
- //關(guān)閉流
- dos.close();
- }
- }
運行的結(jié)果如下圖所示:
上面的運行的結(jié)果出現(xiàn)了亂碼是因為各種數(shù)據(jù)類型是以二進(jìn)制形式輸出,用戶是沒有辦法查看的,可以通過DataInputStream這個類來讀取數(shù)據(jù)!
三、PrintStream類
1.PrintStream類是打印輸出流,它是繼承FilterOutputStream類。PrintStream可以把基本數(shù)據(jù)類型的數(shù)據(jù)或者引用的數(shù)據(jù)類型的對象格式化成字符串后在輸出。
2.使用PrintStream類用法例子的實現(xiàn):
- import java.io.*;
- class Dog{
- //重寫toString()方法
- public String toString(){
- return "一只小狗汪汪汪";
- }
- }
- public class P21 {
- public static void main(String[] args) throws Exception {
- //創(chuàng)建FileOutputStream對象
- FileOutputStream fos=new FileOutputStream("text/test01");
- //創(chuàng)建PrintStream對象
- PrintStream ps=new PrintStream(fos);
- //創(chuàng)建Dog對象
- Dog d=new Dog();
- ps.println("狗的年齡為:"+19);
- ps.println(d);
- }
- }
運行的結(jié)果如下圖所示:
四、總結(jié)
本文主要介紹了DataInputStream類、DataOutputStream類、PrintStream類。DataInputStream類是數(shù)據(jù)輸入流它和機(jī)器無關(guān)的操作數(shù)據(jù)流,讀取Java原始的數(shù)據(jù)。DataInputStream介紹它的構(gòu)造方法和方法,DataOutputStream類方法的例子實現(xiàn)。DataOutputStream類是數(shù)據(jù)輸出流它和機(jī)器無關(guān)的操作數(shù)據(jù)流,讀取Java原始的數(shù)據(jù)。DataOutputStream介紹它的構(gòu)造方法和方法,DataOutputStream類方法的例子實現(xiàn)。PrintStream可以把基本數(shù)據(jù)類型的數(shù)據(jù)或者引用的數(shù)據(jù)類型的對象格式化成字符串后在輸出。希望大家通過本文的學(xué)習(xí),對你有所幫助!