1. 程式人生 > 其它 >字元流程式碼檔案的寫入與讀出

字元流程式碼檔案的寫入與讀出

技術標籤:Java 基礎知識

package Com.bigDataWork_IO;
import org.junit.Test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

  • 將zq.txt 檔案內容讀入程式中,並且輸出到控制檯。

  • 以下是一個一個字元進行讀取。

public class FileReadWriteTest {
@Test
public void Test() {
// 如果你的專案中 只有一個專案,但是建立了好多包,此資料夾建立直接在你總專案名稱上面建立即可,不然檔案會找不到

File file = new File(“zq.txt”); // 相較於當前module
// 自動生成
FileReader fr = null;
try {
fr = new FileReader(file);
int data;
while ((data =fr.read()) !=-1){
System.out.print((char) data);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
方式一:
// int data = fr.read();
// while (data != -1){
// System.out.print((char)data);
// data = fr.read();
//}
}
}
在這裡插入圖片描述


升級版本:
/**
* 字元流的升級版
* // read 操作升級:使用read的過載方法。
* @throws IOException
*
* 按下Ctrl+Alt+t 進行補貨異常。
*/

@Test
public void testFileRead1() throws IOException {
	//  按下Ctrl+Alt+t 進行補貨異常。
	FileReader fee = null;
	try {
		//1、建立類的例項
		File file = new File("zq.txt");

		//2、file read 類的例項
		fee = new FileReader(file);

		//3、讀入操作
		char[] cbuf = new char[5];
		int len;
		while ((len=fee.read(cbuf))!=-1){
			for (int i = 0; i<len; i++) {
				System.out.print(cbuf[i]);
			}
		}
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		//4、資源關閉
		fee.close();
	}
}


/**
 * 從 記憶體中寫出資料到硬碟的檔案裡
 * 按下Ctrl+Alt+t 進行補貨異常。
 */

/**	說明:輸出操作 對用的file 檔案可以不存在,不存在則會自動建立。。。
 * 		如果存在在原來基礎末尾進行新增,
 * 		false :在原有檔案進行繼續新增。
 * 		true:不會對原有檔案進行覆蓋,在原有檔案進行新增
 *
 */

@Test
public void testFileWrite() throws IOException {
FileWriter fw = null;// false or true
try {
// 1、提供file 類的物件
File file = new File(“kk.txt”);
// 2、提供 fileWrite的物件,用於資料的寫出。
fw = new FileWriter(file,false);
// 3、寫出的操作
fw.write(“Hadoop”);
fw.write(“you are 666”);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4、關閉流操作
fw.close();
}

}

/**
 * 暫時不改Try -catch -finany
 * 可以複製圖片檔案的編寫。。
 * @throws IOException
 * 從檔案讀入並且寫出的程式碼
 * 可以使用
 */
@Test
public void testFileReaderWrite() throws IOException {
//1、建立File類的物件,指明讀入和寫出的檔案
		File srcfile = new File("zq.txt");
		File destfile = new File("zq1.txt");
	//2、建立輸入和輸出流的物件
		FileReader	fileR = new FileReader(srcfile);
		FileWriter fileW = new FileWriter(destfile);

	//3、資料的讀入和寫入操作
	char[] chf = new char[5];
		int len;
		while ((len=fileR.read(chf))  !=-1){

			// 每次寫出len 個字元
			fileW.write(chf,0,len);
		}
	//4、流的關閉
	fileW.close();
	fileR.close();
}

}