1. 程式人生 > >IO流相關案例

IO流相關案例

IO流

1.1 復制文本文件的5種方式
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流相關案例