1. 程式人生 > >輸入輸出流的幾種方式

輸入輸出流的幾種方式

一些自己對io流的錯誤嘗試

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringReader;

public class 輸入輸出流的方法test1 {
	public static final String CODE_GBK = "GBK";
	public static final String CODE_UTF = "UTF-8";

	// 如果輸出的檔案不存在,會自動建立,用fileWriter
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		String s = null;

		String ss = "weqerqe";
		StringReader s3 = new StringReader(ss);// 這裡s3是一個物件
		int i;
		while ((i = s3.read()) != -1) {// 到達流末尾,read方法返回的是-1",即意味著流中沒有資料了
			// String result = Integer.toString(i);//輸出的還是數字.失敗
			// String result = i+"";----------------同上,輸出還是數字
			// String result = String.valueOf(i);-----同上,輸出還是數字

			

			char c = (char) i;
			String result = String.valueOf(c);
			System.out.print(c);
			// System.out.println(Integer.parseInt(result));//兩者的區別在於,parse返回int型別
			// System.out.println(Integer.valueOf(result));//返回Integer物件
			// System.out.println((char)i);//轉為char之後,成為單個字元輸出
		}
		// StringReader,可以接收字串

		BufferedReader in = new BufferedReader(new StringReader(ss));

		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("D:\\file\\file1.txt")));// --------------輸出到檔案內,方法一
		// D:\file\file1.txt這樣寫目錄不對,正確的還可以寫成 D:/file/file1.txt;
		while ((s = in.readLine()) != null) {
			out.println(s);// 自帶換行效果
		}

		// System.out.println(s.trim());//NullPointerException
		String path = "D:\\src\\day1203\\test.java";

		BufferedReader in1 = new BufferedReader(new InputStreamReader(new FileInputStream(path), CODE_UTF));// 讀取字串

		BufferedWriter wd = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\file\\file1.txt")));// -----------輸出,方法二

		// FileWriter fw = new
		// FileWriter(file1);-----------------輸出,方法三輸出到檔案,直接用fileWriter就可以了

		while ((s = in.readLine()) != null) {
			wd.write(s);
			wd.newLine();

		}
		wd.close();// 把裡面的資料都讀完了
		in1.close();// 關閉
	}
}

測試圖片上傳