天天看點

IO流(2)

版權聲明:本文為部落客原創文章,轉載請注明出處。 https://blog.csdn.net/twilight_karl/article/details/53257915

節點流:

位元組數組輸入流 ByteArrayInputStream

位元組數組輸出流 ByteArrayOutputStream

将位元組數組轉化成流

ByteArrayInputStream(byte [] )

不用關閉

toByteArray() 輸出到位元組數組

處理流

輸入流:DataInputStream(InputStream x) readXXX()

輸出流:DataOutputStream(OutputStream x) writeXXX()

// DataInputStream/DataOutputStream 寫入到檔案/從檔案讀取
    public static void main (String [] args) throws IOException{
        File file = new File("D:/桌面/DataInputStream.txt");
        DataInputStream input = new DataInputStream(new FileInputStream(file));
//      DataOutputStream output = new DataOutputStream(new FileOutputStream(file));
        int a = 100;
        double b = 200;
        String c = "string";
//      output.writeInt(a);
//      output.writeDouble(b);
//      output.writeUTF(c);
        int d = input.readInt();
        double e = input.readDouble();
        String f = input.readUTF();
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
//      output.close();
//      input.close();

    }           

對象序列化:

ObjectInputStream -> readObject()

ObjectOutputStream -> writeObject()

先序列化後反序列化,對象必須使用java.io.Seriallizable接口

不是所有屬性都需要序列化,用transient表示不需要序列化的屬性

可變參數隻能放在新蔡的最後一個位置(Closeable …)

…可變參數,處理方式與數組一緻

try- with-resource

列印流和輸入流

system.out

system.in

printStream

PrintStream ps = System.out
ps.println();
           
ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(src)))
ps.println(); //輸出到檔案           

System.out

System.err

System.in 鍵盤輸入

PrintStream output = new PrintStream(new FileOutputStream(new File("D:/桌面/2.txt")));
output.print("printStream");           
InputStream in = System.in;//system.in 實際上是一個InputStream流
重定向

setIn()

setOut()

setErr()

System.setOut(new PrintStream(new FileOutputStream(“”)));

System.out.println(“2333”);

System.setOut(new PrintStream(new FileOutputStream(new FileDescripter.out)));//傳回控制台

System.setOut(new PrintStream(new FileOutputStream("D:/桌面/3.txt")));
System.out.println("重定向");           

繼續閱讀