jdk中的IO

今天看了Think in Java中關於IO 的一小部分。通常來講JDK中的IO分爲java

1.字節流,字符流。緩存

    其中字節流的接口爲InputStream,OutputStream。字符流的接口爲Reader,Writer。app

2.輸入流,輸出流spa

    其中InputSteam,Reader爲輸入流,OutputStream,Writer爲輸出流。code

3.InputSteam,Reader都有read()的方法。OutputSteam,Writer都有write()的方法繼承

3.有一個FilterInputSteam 和FilterOutputSteam是裝飾器的接口,控制流的類,給裝飾器提供接口。接口

4.裝飾器有不少,基本上都繼承了FilterInputSteam或者FileOutpuStream。用的比較多的裝飾器有BufferedWriter,裏面作了緩存的一些做用,在要真正寫入的時候須要flush一下。BufferReader有一個很是使用的方法readLine(),能夠讀取一行。get

5.字節流轉化爲字符流。it

OutputStreamWriter writer = new OutputStreamWriter(InputStream in);

InputStreamReader reader = new InputStreamReader(OutputStream out);

附上寫文件的幾種方法class

第一種寫文件的方法:

FileOutputStream outFileStream = new FileOutputStream(new File("/home/liubin/test.txt"),true);
		OutputStreamWriter writer = new OutputStreamWriter(outFileStream);
		BufferedWriter bw = new BufferedWriter(writer);
		bw.append("北京時間:" + new Date() + "\n");
//		bw.write("北京時間:" + new Date());
		bw.flush();
		bw.close();

第二種寫文件的方法:

FileWriter writer = new FileWriter(new File("/home/liubin/test.txt"), true);
		writer.write("北京時間:" + new Date() + "\n");
		writer.close();

第三種寫文件的方法:

FileOutputStream outFileStream = new FileOutputStream(new File("/home/liubin/test.txt"), true);
		byte b[]  = "紐約----".getBytes();
		outFileStream.write(b);


附上讀文件的幾種方法

(讀的時候若是文件包含了中文或者其餘大於8位的字符就必需要用字符的方式顯示,否則會有亂碼的)

第一種讀文件的方法(字符):

                FileInputStream file = new FileInputStream(new File("/home/liubin/test.txt"));
		InputStreamReader reader = new InputStreamReader(file);
		BufferedReader br = new BufferedReader(reader);
		String line = null;
		while((line = br.readLine()) != null){
			System.out.println(line);
		}
		br.close();

第二種讀文件的方法(字節)

FileReader fileReader = new FileReader(new File("/home/liubin/test.txt"));
//		int c = -1;
//		while ( (c = fileReader.read()) != -1){
//			System.out.println((char)c);
//		}
		char[] ch = new char[99999];
		while(fileReader.read(ch) != -1){
			System.out.println(ch);
		}
		fileReader.close();
	}

後面還有好多種。。

老是你會發現,有了裝飾器模式以後java中IO實在是太靈活了。掌握幾種,看看jdk就能很快掌握其餘的。

相關文章
相關標籤/搜索