📄 bytefile.java
字号:
//【例9.2】 使用文件字节输入输出流实现文件的输入输出操作。
import java.io.*;
public class ByteFile
{
private String filename; //文件名
public ByteFile(String filename) //构造方法,指定文件名
{
this.filename = filename;
}
public void writeToFile(byte[] buffer) throws IOException //将缓冲区数据写入指定文件
{
FileOutputStream fout = new FileOutputStream(this.filename); //为指定文件创建文件输出流对象
fout.write(buffer); //将指定字节缓冲区中数据写入输出流
fout.close(); //关闭输出流
System.out.println("Write to File "+this.filename);
}
public void readFromFile() throws IOException //将指定文件中的数据读到缓冲区
{
FileInputStream fin = new FileInputStream(this.filename); //为指定文件创建文件输入流对象
System.out.println("readFromFile "+this.filename);
byte[] buffer = new byte[512]; //字节缓冲区
int count=0;
do
{
count = fin.read(buffer); //读取输入流
System.out.println("count = "+count);
for(int i=0;i<count;i++)
System.out.print(buffer[i]+" ");
System.out.println();
}while (count!=-1); //输入流未结束时
fin.close(); //关闭输入流
}
public void copyFile(String filename2, boolean append) throws IOException //复制文件
{ //将当前文件内容复制到filename2指定文件中,append指定添加或重写方式
FileInputStream fin = new FileInputStream(this.filename); //创建文件输入流对象
FileOutputStream fout = new FileOutputStream(filename2, append); //创建文件输出流对象
byte[] buffer = new byte[512]; //字节缓冲区
int count=0;
do
{
count = fin.read(buffer); //读取输入流
if (count != -1)
fout.write(buffer); //写入输出流
}while (count!=-1);
fin.close(); //关闭输入流
fout.close(); //关闭输出流
System.out.println("Copyfile from "+this.filename+" to "+filename2);
}
public void copyFile(String filename2) throws IOException //重写方式复制文件,方法重载
{
copyFile(filename2, false);
}
public static void main(String args[]) throws IOException
{
byte[] buffer = {0,1,2,3,4,5,6,7,8,9};
ByteFile afile = new ByteFile("ByteFile.dat");
afile.writeToFile(buffer);
afile.readFromFile();
afile.copyFile("ByteFile2.dat");
}
}
/*
程序运行结果如下:
Write to File ByteFile.dat
readFromFile ByteFile.dat
count = 10
0 1 2 3 4 5 6 7 8 9
count = -1
Copyfile from ByteFile.dat to ByteFile2.dat
程序设计错误说明如下:
1、无参数的构造方法有错,编译时不通过,因为类中没有声明。
AccessFile afile = new AccessFile();
2、构造方法有参数,但文件名为空串,运行时抛出异常FileNotFoundException(No such file or directroy) 。
AccessFile afile = new AccessFile("");
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -