package net.cw.lesson11;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
-
功能:演示以字节流读写文件
-
作者:巍巍妹纸
-
日期:2019年5月23日
*/
public class FileReadWrite01 {
public static void main(String[] args) {
//创建File对象,指向文件
File file = new File(“d:/love.txt”);
try {
//创建指定文件
file.createNewFile();
//提示用户文件创建成功
System.out.println(“文件[” + file.getAbsolutePath() + “]创建成功!”);
//创建文件字节输出流
FileOutputStream fos = new FileOutputStream(file);
//1、逐个字节写入数据
fos.write(‘I’);
fos.write(’ ‘);
fos.write(‘l’);
fos.write(‘o’);
fos.write(‘v’);
fos.write(‘e’);
fos.write(’ ‘);
fos.write(‘y’);
fos.write(‘o’);
fos.write(‘u’);
fos.write(’.’);
//提示用户数据写入成功
System.out.println(“逐个字节,数据写入成功!”);
//2、以字节数组写入数据
fos.write("\nDo you love me?".getBytes());
//提示用户数据写入成功
System.out.println(“以字节数组写入,数据写入成功!”);
//3、将字节数组的一部分写入文件
fos.write(’\n’);
fos.write(“I don’t love you”.getBytes(), 8,8);
//提示用户数据写入成功
System.out.println(“字节数组的一部分写入成功!”);//创建文件字节输入流 FileInputStream fis = new FileInputStream(file); //1、逐个字节读取文件,采用for循环 //获取文件字节输入流的字节数(长度) int length = fis.available(); for (int i = 0;i<length;i++){ System.out.print((char) fis.read()); } System.out.println(); //2、逐个字节读取文件,采用while循环 fis = new FileInputStream(file); int i; while ((i = fis.read()) != -1){ System.out.print((char) i); } System.out.println(); //3、快读取文件(以字节数组为单位来读取),只能采用whlie循环 fis = new FileInputStream(file); byte[] b = new byte[6]; while ( fis.read(b) != -1){ for (int k = 0;k < b.length;k++){ System.out.print((char) b[k]); } } } catch (IOException e) { System.err.println("文件[" + file.getAbsolutePath() + "]创建失败!"); }
}
}