IO流相關案例
阿新 • • 發佈:2018-03-15
IO流1.1 復制文本文件的5種方式
A:利用基本流一次讀寫一個字符
B:利用基本流一次讀寫一個字符數組
C:利用緩沖流一次讀寫一個字符
D:利用緩沖流一次讀寫一個字符數組
E:利用緩沖流的特有方法一次讀寫一個字符串
1.1.1 案例代碼十二:
A:利用基本流一次讀寫一個字符
B:利用基本流一次讀寫一個字符數組
C:利用緩沖流一次讀寫一個字符
D:利用緩沖流一次讀寫一個字符數組
E:利用緩沖流的特有方法一次讀寫一個字符串
1.1.1 案例代碼十二:
package com.itheima_06; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 復制文本文件(5種方式) * * 數據源: * FileWriterDemo.java * 目的地: * Copy.java */ public class CopyFileTest { public static void main(String[] args) throws IOException { /* method1("FileWriterDemo.java","Copy.java"); method2("FileWriterDemo.java","Copy.java"); method3("FileWriterDemo.java","Copy.java"); method4("FileWriterDemo.java","Copy.java"); method5("FileWriterDemo.java","Copy.java"); */ String srcFileName = "FileWriterDemo.java"; String destFileName = "Copy.java"; // method1(srcFileName,destFileName); // method2(srcFileName,destFileName); method3(srcFileName,destFileName); // method4(srcFileName,destFileName); // method5(srcFileName,destFileName); } //緩沖流一次讀寫一個字符串 public static void method5(String srcFileName,String destFileName) throws IOException { //創建輸入緩沖流對象 BufferedReader br = new BufferedReader(new FileReader(srcFileName)); //創建輸出緩沖流對象 BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName)); //一次讀寫一個字符串 String line; while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); bw.flush(); } //釋放資源 bw.close(); br.close(); } //緩沖流一次讀寫一個字符數組 public static void method4(String srcFileName,String destFileName) throws IOException { //創建輸入緩沖流對象 BufferedReader br = new BufferedReader(new FileReader(srcFileName)); //創建輸出緩沖流對象 BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName)); //一次讀寫一個字符數組 char[] chs = new char[1024]; int len; while((len=br.read(chs))!=-1) { bw.write(chs,0,len); } //釋放資源 bw.close(); br.close(); } //緩沖流一次讀寫一個字符 public static void method3(String srcFileName,String destFileName) throws IOException { //創建輸入緩沖流對象 BufferedReader br = new BufferedReader(new FileReader(srcFileName)); //創建輸出緩沖流對象 BufferedWriter bw = new BufferedWriter(new FileWriter(destFileName)); //一次讀寫一個字符 int ch; while((ch=br.read())!=-1) { bw.write(ch); } //釋放資源 bw.close(); br.close(); } //基本流一次讀寫一個字符數組 public static void method2(String srcFileName,String destFileName) throws IOException { //創建輸入流對象 FileReader fr = new FileReader(srcFileName); //創建輸出流對象 FileWriter fw = new FileWriter(destFileName); //一次讀寫一個字符數組 char[] chs = new char[1024]; int len; while((len=fr.read(chs))!=-1) { fw.write(chs,0,len); } //釋放資源 fw.close(); fr.close(); } //基本流一次讀寫一個字符 public static void method1(String srcFileName,String destFileName) throws IOException { //創建輸入流對象 FileReader fr = new FileReader(srcFileName); //創建輸出流對象 FileWriter fw = new FileWriter(destFileName); //一次讀寫一個字符 int ch; while((ch=fr.read())!=-1) { fw.write(ch); } //釋放資源 fw.close(); fr.close(); } }
1.2 把集合中的數據寫到文本文件
把ArrayList集合中的字符串數據存儲到文本文件項目根目下的array.txt中
每一個字符串元素作為文件中的一行數據
1.2.1 案例代碼十三:
package com.itheima_06; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 把ArrayList集合中的字符串數據存儲到文本文件 * 每一個字符串元素作為文件中的一行數據 * * 分析: * A:創建集合對象 * B:往集合中添加字符串元素 * C:創建輸出緩沖流對象 * D:遍歷集合,得到每一個字符串元素,然後把該字符串元素作為數據寫到文本文件 * E:釋放資源 */ public class ArrayListToFileTest { public static void main(String[] args) throws IOException { //創建集合對象 ArrayList<String> array = new ArrayList<String>(); //往集合中添加字符串元素 array.add("hello"); array.add("world"); array.add("java"); //創建輸出緩沖流對象 BufferedWriter bw = new BufferedWriter(new FileWriter("array.txt")); //遍歷集合,得到每一個字符串元素,然後把該字符串元素作為數據寫到文本文件 for(int x=0; x<array.size(); x++) { String s = array.get(x); bw.write(s); bw.newLine(); bw.flush(); } //釋放資源 bw.close(); } }
1.3 把文本文件中的數據讀取到集合
從項目根目錄下的array.txt文本文件中讀取數據到ArrayList集合中,並遍歷集合,每一行數據作為一個字符串元素
1.3.1 案例代碼十四:
package com.itheima_06; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; /* * 從文本文件中讀取數據到ArrayList集合中,並遍歷集合 * 每一行數據作為一個字符串元素 * * 分析: * A:創建輸入緩沖流對象 * B:創建集合對象 * C:讀取數據,每次讀取一行數據,把該行數據作為一個元素存儲到集合中 * D:釋放資源 * E:遍歷集合 */ public class FileToArrayListTest { public static void main(String[] args) throws IOException { //創建輸入緩沖流對象 BufferedReader br = new BufferedReader(new FileReader("array.txt")); //創建集合對象 ArrayList<String> array = new ArrayList<String>(); //讀取數據,每次讀取一行數據,把該行數據作為一個元素存儲到集合中 String line; while((line=br.readLine())!=null) { array.add(line); } //釋放資源 br.close(); //遍歷集合 for(int x=0; x<array.size(); x++) { String s = array.get(x); System.out.println(s); } } }
IO流相關案例