⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bytefile.java

📁 这是《Java2程序设计实用教程(第2版)》教材中附带的例题源代码。
💻 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 + -