day20 java 語言中的讀取寫入數據(一)
阿新 • • 發佈:2017-11-11
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 語言中的讀取寫入數據(一)