Java數據流學習


數據流

與機器無關的操作Java基本數據類型。網絡傳輸會用。

  • DataInputStream
    數據輸入流允許應用程序以與機器無關的方式從底層輸入流中讀取Java基本數據類型。應用程序可以使用數據輸出流寫入稍后由數據輸入流讀取的數據。DataInputStream對於多線程訪問不一定是安全的。線程安全是可選的,他由此類方法是使用者負責。

  • DataOutputStream
    數據輸出流允許應用程序以適當的方式將基本Java數據類型寫入輸出流中。然后,應用程序可以使用數據輸入流將數據讀入。

代碼示例

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.junit.Test;

public class DataStreamDemo {
	// 向文件中寫入數據
	@Test
	public void writeData() {
		File file = new File("F:/test.txt");
		try {
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));

			DataOutputStream dos = new DataOutputStream(bos);

			dos.writeInt(10);// 寫入4個字節
			dos.writeByte(5);// 寫入一個字節
			dos.writeUTF("愛");

			dos.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}// writeData

	// 從文件中讀取數據
	@Test
	public void readData() {
		File file = new File("F:/test.txt");
		try {
			BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

			DataInputStream dis = new DataInputStream(bis);

			// 讀的時候應按照寫入的順序
			int num = dis.readInt();
			byte b = dis.readByte();
			String str = dis.readUTF();

			System.out.println(num + "," + b + "," + str);
			dis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}// readData
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM