1. 程式人生 > >位元組陣列流,檔案流,資料流,轉換流

位元組陣列流,檔案流,資料流,轉換流

public class Demo011 {
	public static void main(String[] args) {
		Demo011 de = new Demo011();
		de.byteArrayInputStream();// 位元組陣列輸入流
		de.fileInputStream();// 檔案輸入流
		de.fileInputStream2();// 檔案輸入流,讀進陣列
		de.fileOutputStream();// 檔案輸出流
		de.copy();// 檔案複製
		de.dataOutputStream();// 資料輸出流(用資料流寫操作)
		de.dataInputStream();// 資料輸入流(用資料流讀操作)
		de.dataOutputStream2();// 資料輸出流(用帶緩衝區的輸出流寫操作)
		de.dataInputStream2();// 資料輸入流(用帶緩衝區的輸入流讀操作)
		de.printStream();

	}

	private void printStream() {
		// TODO Auto-generated method stub
		try {
			PrintStream ps = new PrintStream("c:\\hello.txt");
			ps.write("sdfa".getBytes());
			ps.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void dataOutputStream2() {
		// TODO Auto-generated method stub
		try {
			FileOutputStream fos = new FileOutputStream("c:\\hello.txt");
			BufferedOutputStream bs = new BufferedOutputStream(fos);
			bs.write("xiedu".getBytes());
			fos.close();
			bs.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void dataInputStream2() {
		// TODO Auto-generated method stub
		try {
			FileInputStream fis = new FileInputStream("c:\\hello.txt");
			StringBuffer str = new StringBuffer();
			BufferedInputStream bs = new BufferedInputStream(fis);// 帶緩衝區的輸入流
			InputStreamReader isr = new InputStreamReader(bs);// 轉換為字元流
			int i = isr.read();
			while (i != -1) {
				str.append((char) i);// 轉換為字元遍歷輸出
				i = isr.read();
			}
			isr.close();
			bs.close();
			fis.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void dataInputStream() {
		// TODO Auto-generated method stub
		try {
			FileInputStream fis = new FileInputStream("c:\\hello.txt");
			DataInputStream dos = new DataInputStream(fis);
			String str = dos.readUTF();
			System.out.println(str);
			fis.close();
			dos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void dataOutputStream() {
		// TODO Auto-generated method stub
		try {
			FileOutputStream fis = new FileOutputStream("c:\\hello.txt");
			DataOutputStream dis = new DataOutputStream(fis);
			dis.writeUTF("寫入");
			dis.close();
			fis.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void copy() {
		try {
			FileInputStream fis = new FileInputStream("c:\\hello.txt");
			FileOutputStream fos = new FileOutputStream("c:\\hello1.txt");
			int i = fis.read();
			while (i != -1) {
				fos.write(i);
				i = fis.read();
			}
			fos.close();
			fis.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void fileOutputStream() {
		// TODO Auto-generated method stub
		String str = "寫入內容";
		try {
			OutputStream os = new FileOutputStream("c:\\hello.txt");
			os.write(str.getBytes());// 轉換為位元組輸入
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private void fileInputStream2() {
		// TODO Auto-generated method stub
		try {
			InputStream is = new FileInputStream("c:\\hello.txt");
			byte[] by = new byte[1024];
			is.read(by);// 讀進位元組陣列
			String str = new String(by);// 輸出位元組陣列
			is.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void fileInputStream() {
		// TODO Auto-generated method stub
		try {
			InputStream is = new FileInputStream("c:\\hello.txt");
			InputStreamReader isr = new InputStreamReader(is, "GBK");// 轉換流
			int i = isr.read();
			while (i != -1) {
				System.out.println((char) i);// 轉換為字元
				i = isr.read();
			}
			isr.close();

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private void byteArrayInputStream() {
		// TODO Auto-generated method stub
		byte[] by = new byte[] { 5, 12, 1, 56, 47, 8, 96, 64 };
		ByteArrayInputStream bais = new ByteArrayInputStream(by);
		int i = bais.read();
		while (i != -1) {
			System.out.print(i);
			i = bais.read();
		}
		try {
			bais.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}