天天看點

Java 流-列印流&資料流

Java 流-列印流&資料流

PrintStream

1.System.out 和 System.err 都是PrintStream的執行個體

2.PrintStream的方法都不用抛出IOException異常

3.列印流無需類型轉換,自動轉成String類型,但緩沖流需要類型轉換(使用緩沖流隻能寫入字元串)

4.使用列印流時會自動轉成String類型,會失去資料原有的類型

import java.io.*;
import java.util.Date;

public class TestPrint {
	public static void main(String[] args) throws IOException {
	//1.PrintStream ps = System.out;  //或.err
		
	//2.PrintStream ps = new PrintStream(new FileOutputStream("D:\\print.txt"));//寫入檔案
		
		PrintWriter ps = new PrintWriter(new FileOutputStream("D:\\print.txt"));//需要手動刷下緩存
		ps.println("Love you 3000 times");
		ps.println(true);
		ps.println(9999);
		ps.println(new Date(1000));
		ps.close();
		ps.flush();
		
		BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\a.txt"));
		bw.write("Hello");
		bw.write(99.5);  //不準換會報錯
		bw.write(new Date());
	}
}
           

資料流

1.提供了可以存取的所有Java基本資料類型

2.處理流,隻針對位元組流,二進制檔案

3.輸入流鍊和輸出流鍊

4.關閉時之關閉上層流

import java.io.*;

public class TestData {
	public static void main(String[] args) throws IOException {
		write();
		read();
	}
	public static void read() throws IOException {
		//(1)資料源
		FileInputStream fis = new FileInputStream("D:\\a.txt");
		//(2)提高讀寫效率
		BufferedInputStream bis = new BufferedInputStream(fis);
		//(3)資料流
		DataInputStream dis = new DataInputStream(bis);
		//前三步可合成一句
	//	DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("D:\\a.txt")));
		//(4)讀資料
		System.out.println(dis.readInt());
		System.out.println(dis.readDouble());
		System.out.println(dis.readBoolean());
		System.out.println(dis.readChar());
		System.out.println(dis.readUTF());
		dis.close();
	
	}
	
	public static void write() throws IOException {
		//(1)目的地
		FileOutputStream fos = new FileOutputStream("D:\\a.txt");
		//(2)緩沖流提高效率
		BufferedOutputStream bos = new BufferedOutputStream(fos);
		//(3)資料流,增加對Java基本資料類型和String的處理
		DataOutputStream dos = new DataOutputStream(bos);
		//(4)寫入資料  //寫入的字元是它原來的模樣
		dos.writeInt(98);
		dos.writeDouble(99.5);	
		dos.writeBoolean(true);
		dos.writeChar('a');
		dos.writeUTF("Love");
		//(5)關閉
		if(dos!=null)
			dos.close();
	}
}