1. 程式人生 > >10.5-全棧Java筆記:常見流詳解(三)

10.5-全棧Java筆記:常見流詳解(三)

java

上節我們講到「Java中常用流:緩沖」,本節我們學習數據流和對象流~

數據流

數據流將“基本數據類型變量”作為數據源,從而允許程序以與機器無關方式從底層輸入輸出流中操作java基本數據類型。

DataInputStreamDataOutputStream提供了可以存取與機器無關的所有Java基礎類型數據(如:intdouble 等)的方法。

【示例1DataInputStreamDataOutputStream的使用

package com.bjsxt.io;

import java.io.*;

public class TestDataStream {

public static

void main(String[] args) {

DataOutputStream dos = null;

DataInputStream dis = null;

FileOutputStream fos = null;

FileInputStream fis = null;

try {

fos = new FileOutputStream("D:/data.txt");

fis = new FileInputStream("D:/data.txt");

dos = new DataOutputStream(new BufferedOutputStream(fos));

dis = new DataInputStream(new BufferedInputStream(fis));

//將如下數據寫入到文件中

dos.writeDouble(Math.random());

dos.writeBoolean(true);

dos.writeInt(10);

dos

.writeChar(‘a‘);

dos.flush(); //將流中數據寫入到文件中

//從文件中直接讀取基本數據

System.out.println("double: " + dis.readDouble());

System.out.println("boolean: " + dis.readBoolean());

System.out.println("int: " + dis.readInt());

System.out.println("char: " + dis.readChar());

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(dos!=null){

dos.close();

}

} catch (IOException e) {

e.printStackTrace();

}

try {

if(dis!=null){

dis.close();

}

} catch (IOException e) {

e.printStackTrace();

}

try {

if(fos!=null){

fos.close();

}

} catch (IOException e) {

e.printStackTrace();

}

try {

if(fis!=null){

fis.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

對象流

ObjectInputStream/ObjectOutputStream是以“對象”為數據源。經常使用對象流將對象數據進行序列化和反序列化操作。

註:後續文章會詳細講解<Java對象的序列化和反序列化>




「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數據庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰

E-Java高級框架精解

F-Linux和Hadoop




本文出自 “12931675” 博客,請務必保留此出處http://12941675.blog.51cto.com/12931675/1944623

10.5-全棧Java筆記:常見流詳解(三)