java基礎——文件(IO)操作2

一、System.in和 System.out

    爲了支持標準輸入輸出設備,Java定義了兩個特殊的流對象:System.inSystem.out

System.in對應鍵盤,是 InputStream 類型的,程序使用 System.in 可以讀取從鍵盤上輸入的數據

System.out 鍵盤可以被當作一個特殊的輸入流,顯示器可以被當作一個特殊的輸出流。

 

二、打印流——PrintStream、PrintWrite

 

PrintStream

     PrintStream類提供了一系列的 print 和 println 方法,可以實現將基本數據類型的格式轉化成字符串輸出,而不是輸出原始的字節內容。

     PrintStream有下面幾個構造方法:

     PrintStream(OutputStream out)
     //autoflush 控制,在 Java 中遇到換行符(\n)時是否自動清空緩衝區
     PrintStream(OutputStream out,boolean auotflush)
     //encoding :指定編碼方式
     PrintStream(OutputStream out,boolean auotflush, String encoding)

PrintWriter

     IO包中提供的與 PrintStream 對應的類。構造方法:

     PrintWriter(OutputStream)
     PrintWriter(OutputStream, boolean)
     PrintWriter(Writer)
     PrintWriter(Writer, boolean)

示例:

import java.io.*;
public class SystemPrintDemo{
public static void main(String args[]){
	PrintWriter out = null;
	// 通過 System.out 爲 PrintWriter 實例化
	out = new PrintWriter(System.out);
	// 向屏幕上輸出
	out. print ("Hello World!");
	out.close();
	}

}

輸出結果:

Hello World!


三、DataInputStream與DataOutputStream

        DataInputStream DataOutputStream提供了與平臺無關的數據操作,通常會先通DataOutputStream按照一定的格式輸出,再通過DataInputStream按照一定格式讀入。

 

 示例:

     

 

代碼實現:

import java.io.* ;
public class DataStreamDemo{
	
	public static void main(String[] args) throws IOException{
		
		// 將數據寫入某一種載體
		DataOutputStream out = new DataOutputStream(new FileOutputStream("order.txt"));
		// 價格
		double[] prices = { 18.99, 9.22, 14.22, 5.22, 4.21 };
		// 數目
		int[] units = { 10, 10, 20, 39, 40 };
		String[] descs = { "T 恤杉", "杯子", "洋娃娃", "大頭針", "鑰匙鏈" };
		
		// 向數據過濾流寫入主要類型
		for (int i = 0; i < prices.length; i++){
			
			// 寫入價格,使用 tab 隔開數據
			out.writeDouble(prices[i]);
			out.writeChar('\t');
			// 寫入數目
			out.writeInt(units[i]);
			out.writeChar('\t');
			// 寫入產品名稱,行尾加入換行符
			out.writeChars(descs[i]);
			out.writeChar('\n');
		}
		out.close();
		
		// 將數據讀出
		DataInputStream in = new DataInputStream(new FileInputStream("order.txt"));
		double price;
		int unit;
		StringBuffer desc;
		double total = 0.0;
		try{
			// 當文本被全部讀出以後會拋出 EOFException,中斷循環
			while (true){
				
				// 讀出價格
				price = in.readDouble();
				// 跳過 tab
				in.readChar();
				// 讀出數目
				unit = in.readInt();
				// 跳過 tab
				in.readChar();
				char chr;
				// 讀出產品名稱
				desc = new StringBuffer();
				
				while ((chr = in.readChar()) != '\n'){
					desc.append(chr);
				}
				
				System.out.println("定單信息: " + "產品名稱:"+desc+",\t 數量:"+unit+",\t 價格:"+price);
				total = total + unit * price;
			}
		}catch (EOFException e){
			System.out.println("\n 總共需要:" + total+"元");
		}

		in.close();
	}
}

執行結果:

        

 

參考資源:Java基礎http://download.csdn.net/detail/xujiaolf/7541349

發佈了106 篇原創文章 · 獲贊 78 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章