java以字节流形式读写文件

作者: adm 分类: java 发布时间: 2021-08-16

java中以字节流的形式读取文件采用的是FileInputStream,将指定路径的文件以字节数组的形式循环读取,代码如下:

public static void ReadFileByByte(){
    String path="H:\\bbb\\aa\\tt.txt";
    FileInputStream fis = null;
    try {
        int length = 0;
        byte[] Buff = new byte[1024];
        File file = new File(path);
        fis = new FileInputStream(file);

        while((length =fis.read(Buff))!=-1){
            //对Buff进行处理
            System.out.println(new String(Buff));
        }

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }catch (IOException ex) {
        // TODO Auto-generated catch block
        ex.printStackTrace();
    }finally{
        if(fis!=null){
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

java中以字节流的形式写入文件采用的是FileOutputStream,在指定路径下写入指定字节数组内容,并可设定追加模式或者覆盖模式,代码如下:

/**
 * 读取指定文件数据写入另一个文件
 * <p>
 * <p>
 * <p>
 * 字节数组缓冲
 */

public static void readOldFileWriteNewFileTwo() {
    File oldFile = new File("E:\\Java\\Hydrangeas.jpg"); //237 109

    File newFile = new File("E:\\Java\\newpic.jpg");

    FileInputStream fis = null;

    FileOutputStream fos = null;

    try {
        fis = new FileInputStream(oldFile); // 文件字节输入流

        fos = new FileOutputStream(newFile); // 文件字节输出流

        byte[] bytes = new byte[128]; //缓冲

        int len;

        while ((len = fis.read(bytes)) != -1) {
            fos.write(bytes, 0, len);

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();

    } catch (IOException e) {
        e.printStackTrace();

    } finally {
        try {
            if (fis != null)

                fis.close();

            if (fos != null)

                fos.close();

        } catch (IOException e) {
            e.printStackTrace();

        }

    }

}

/**
 * 读取指定文件数据写入另一个文件
 */

public static void readOldFileWriteNewFile() {
    File oldFile = new File("H:\\bbb\\aa\\tt.txt");

    File newFile = new File("H:\\bbb\\aa\\t2.txt");

    FileInputStream fis = null;

    FileOutputStream fos = null;

    try {
        fis = new FileInputStream(oldFile); // 文件字节输入流

        fos = new FileOutputStream(newFile); // 文件字节输出流

        int count = 0;

        int b;

        while ((b = fis.read()) != -1) {
            fos.write(b);

            count++;

        }

        System.out.println("count :" + count);

    } catch (FileNotFoundException e) {
        e.printStackTrace();

    } catch (IOException e) {
        e.printStackTrace();

    } finally {
        try {
            if (fis != null)

                fis.close();

            if (fos != null)

                fos.close();

        } catch (IOException e) {
            e.printStackTrace();

        }

    }

}

/**
 * 写字符串数据到文件
 */

public static void writeFileOne() {
    String s = "创建一个向指定 File 对象表示的文件中写入数据的文件输出流";

    // 第一步 创建文件

    File file = new File("E:\\Java\\demo.txt");

    FileOutputStream fos = null;

    try {
    // 第二步 创建文件字节输出流

        fos = new FileOutputStream(file, true); // 第二参数据为true,表示字节写入文件末尾处

    // 第三步 写数据到字节输出流

        byte[] b = s.getBytes(); // 字符串转字节数组

        fos.write(b);

    } catch (IOException io) {
        System.out.println(io.getMessage());

    } finally {
    // 第四步 关闭流

        try {
            if (fos != null)

                fos.close();

        } catch (IOException e) {
            e.printStackTrace();

        }

    }

}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!