Java学习——字节流操作文件

发布时间:2023年12月29日

系列文章目录

这里是Java学习系列课程,点击进入http://t.csdnimg.cn/Xtkz9

欢迎大家一起来学习!


目录

系列文章目录

一、字节流是什么?

二、字节流操作文件

1.利用输入流从文件中读取信息

2.利用输出流将数据写入文件

3.实现文件复制

总结


一、字节流是什么?

字节流是一种数据传输的方法,以字节为单位进行数据的读取。通常用来处理二进制文件,比如音频、图片等。

字节流有两个抽象基类,InputStreamOutputStream,分别处理字节流的输入与输出。所有字节输入流都继承InputStream类,所有的字节输出流都继承OutputStream类。

二、字节流操作文件

1.利用输入流从文件中读取信息

实现步骤如下:

(1)创建文件输入流对象 f;

(2)创建临时存放数据的byte类型数组 b;

(3)利用f.read(b)读出信息;

(4)关闭文件

代码实现如下:?

import java.io.FileInputStream;
import java.io.IOException;
//利用字节流的输入流读取文件read中的信息
//读取文件一共三步,1,创建文件输入流对象;2、创建临时存放数据的byte数组;3、利用f.read(b)读出信息;4、关闭文件

public class TestFileInputStream {
    public static void main(String[] args) {
        FileInputStream f=null;
        try{
            //创建文件输入流对象
            f=new FileInputStream("read.txt");
            int n=512;
            int len=0;
            //创建一个临时存放数据的数组
            byte b[]=new byte[n];
            /*
            该方法会输出无效字符,长度为n
            while((f.read(b,0,n)!=-1)&&(n>0)){
                System.out.println(new String(b));
            }*/
            while((len=f.read(b))!=-1)
            {
                System.out.println(new String(b,0,len));
            }

            //利用流对象f的读取方法将流中数据读入数组b中

        }
        catch (Exception e)
        {
            System.out.println(e);
        }
        finally {
            try{
                f.close();
            }catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }
}

2.利用输出流将数据写入文件

实现步骤如下:

(1)创建文件输出流对象 f;

(2)创建临时存放数据的byte类型数组 b;

(3)利用System.in.read(b),从终端读入数据到b中

(4)利用f.write(b)读出信息;

(5)关闭文件

代码如下(示例):

import java.io.FileOutputStream;
import java.io.IOException;
//利用输出流将信息写入文件read.txt中
public class TestFileOutputStream {
    public static void main(String[] args) throws IOException {
        System.out.println("输入要保存的文件:");
        int count,n=512;
        byte b[]=new byte[n];
        count=System.in.read(b);
        FileOutputStream f=new FileOutputStream("read.txt",true);
        f.write(b,0,count);
        System.out.println("已经保存到read.txt");
        f.close();
    }
}

3.实现文件复制

实现步骤如下:

(1)创建文件输入流对象 f;

(2)创建文件输出流对象e;

(3)创建临时存放数据的byte类型数组 b;

(4)利用,f.read(b)从文件read.txt中读入数据到b中

(5)利用f.write(b)将b中数据写入到read1.txt文件中;

(6)关闭文件

代码实现如下:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Copy {
    public static void main(String[] args) {
        try{
            FileInputStream f=new FileInputStream("read.txt");//创建输入流,读文件
            FileOutputStream e=new FileOutputStream("read2.txt",true);//创建输出流,写文件
            byte b[]=new byte[512];
            int len=0;
            while((len=f.read(b))!=-1)//将读到的信息存放在b 中
            {
                System.out.println(new String(b,0,len));
                //将b中的信息写入到e中
                e.write(b,0,len);
                System.out.println("复制成功!");

//参数1是写的缓冲数组,参数2是从数组的那个位置开始,参数3是获取的数组的总长度;
            }
            f.close();
            e.close();
        }
        catch (Exception e)
        {
            System.out.println(e);
        }

    }
}

?


总结

以上就是今天分享的内容,本文仅仅详细介绍了字节流对文件的操作。

文章来源:https://blog.csdn.net/m0_71233415/article/details/135295204
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。