1. 程式人生 > >day20 java 語言中的讀取寫入數據(一)

day20 java 語言中的讀取寫入數據(一)

day20 java 語言中的讀取寫入數據(一)

day20 java 語言中的讀取寫入數據(一)

一、io概述

io數據流的讀寫功能,在實際的生活中也很常見,比如文件的上傳、下載,日誌的自動更新等都與io讀寫密切相關。io又被分為了讀取數據和寫入數據兩個大的功能。下面就來看看讀取數據的幾種類。


技術分享

二、讀取數據的幾種方式

讀取數據被分為了字節流讀取數據,和字符流讀取數據兩種。

(一):字符輸入流:

1、fileReader類。是字符流讀取數據

2、BufferedReader類。帶有緩沖流讀取數據

(二):字節輸入流:

1、FileInputStream類。是字節流讀取數據

2、BufferedInputStream。是帶有緩沖流讀取數據


三、具體實例

(一)字符流讀數據

//io數據流輸入讀取【FileReader】
package www.com.c1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Io02 {
	public static void main(String[] args) {
		try {
			//1、創建使用字符流實例
			FileReader fileReader = new FileReader("D:\\zs.txt");
			//2、定義變量接收讀取到的
			int temp = 0;
			//3、定義字符來轉換。
			char c;
			//4、循環打印
			while ((temp = fileReader.read())!=-1) {
				c =(char) temp;
				System.out.print(c);
			}
			//5、關閉數據流
			fileReader.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
//io數據流輸入讀取【BufferedReader】
package www.com.c1;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Io04 {

	public static void main(String[] args) {
		try {
			//1、創建實例,
			BufferedReader buf = 
			    new BufferedReader(new FileReader("D:\\zs.txt"));
			//2、定義字符串來接收
			String temp;
			
			//3、使用readline來讀取數據,註意他是讀取的一行字符串
			while ((temp = buf.readLine())!=null) {
				System.out.println(temp);
			}			//4、關閉數據流
			buf.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

(二)字節流讀數據

package www.com.c1;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//io數據流輸入讀取【FileInputStream】

//1、FileInputStream:字節流讀取文件:一般讀取一些圖片、視頻等等。
//					 字符流讀取文件:一般都是一些文字。

public class Io01 {
	public static void main(String[] args) {		
//使用第一種方式【字節流】讀取文件。
		try {
			//1步:創建輸入字節流實例,註意後面的文件存放的位置路徑
			FileInputStream inputStream01 = new FileInputStream("D:\\zs.txt");
			
			//2步、定義變量來接受每一次讀取到的數據
			int tmp;
			
			//4、定義變量來轉換打印讀到的是什麽。
			char ok;
			
			//3、使用while循環來讀取文件的內容:核心步驟
			while ((tmp=inputStream01.read())!=-1) {
				ok = (char) tmp;//使用強制類型轉換
				System.out.print(ok);
			}
			//5、關閉數據流
			inputStream01.close();
			
		} catch (FileNotFoundException e) {
			System.out.println("文件不存在!請在改路徑下建立該文件!");
		} catch (IOException e) {
			e.printStackTrace();
		}
		
//使用第二種方式讀取文件。	【使用字節流讀取中文】
		
		try {
			//1、創建讀取文件的實例
			FileInputStream inputStream = new FileInputStream(new File("D:\\zs.txt"));
			
			//2、定義數組來控制每次讀取到的數據量【類似於緩存】
			byte[] b = new byte[1024]; 
			
			//3、定義變量來接收讀取到的數據
			int a;
			//4、使用read[byte]方法讀取數據
			while ((a = inputStream.read(b))!=-1) {
				
				//5、創建字符串來接收處理讀取到的數據,
				String s = new String(b, 0, a);
					//註意各個參數,參數一:代表每次讀取的最大數據量
							//參數二:代表讀取數據的偏移量,就是從哪個字節開始讀取剩下的數據
							//參數三:讀取字節的數據。
				//6、輸出
				System.out.println(s);
			}
			
			//7、關閉數據流
			inputStream.close();
			
		} catch (FileNotFoundException e) {
			System.out.println("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
//io數據流輸入讀取【BufferedInputStream】
package www.com.c1;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Io03 {
	public static void main(String[] args) {	
		try {
			//1、創建BufferedInputStream實例,只能傳一個輸入流,所以在創建的時候都會創建輸入流的父類或者子類。
			BufferedInputStream bis = 
					new BufferedInputStream(new FileInputStream("D:\\zs.txt"));
			
			//2、定義變量接收讀取到的
			int temp = 0;
			//3、定義字符來轉換。
			char c;
			//4、循環打印
			while ((temp = bis.read())!=-1) {
				c =(char) temp;
				System.out.print(c);
			}
			
			//5、關閉數據流
			bis.close();
		
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


四、結束語

都這兒關於使用IO流讀取文件的常用4個方法就說完了。註意一下在這4個實例中的應用。

本文出自 “程序猿” 博客,轉載請與作者聯系!

day20 java 語言中的讀取寫入數據(一)