Java文件字节输入流

使用输入流InputStream读取字节,文件输入流即FileInputStream

构造方法

FileInputStream(String name);

FileInputStream(File name);

字节输入流的read方法以字节为为单位读取源中的数据。

int read()

输入流调用该方法从源中读取单个字节的数据,该方法返回字节值(0-255之间的一个整数),如果未读出字节就返回-1.

int read(byte b[])

输入流调用该方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。如果未到达文件的末尾,则返回-1.

int read (byte b[],int off,int len)

输入流调用该方法从源中视图读取len个字节到字节数组b中,并返回实际读取的字节数目。如果到达文件的末尾,则返回-1,参数off指定从字节数组的某个位置开始存放读取的数据。

写个小例子加深记忆:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class Example10_4 {
    public static void main(String[] args) {
        int n = -1;
        byte[] a = new byte[100];
        try {
            File f = new File("D:/JavaProject/JavaShiYan/src/com/java/zhang10/", "Example10_4.java");
            InputStream in = new FileInputStream(f);
            //返回读取的字节数
            while ((n = in.read(a, 0, 100)) != -1) {
                System.out.println("字节数:" + n);
                String str = new String(a, 0, n);
                System.out.println(str);
            }
            //返回读取的字节数
            while ((n = in.read(a)) != -1) {
                System.out.println("字节数:" + n);
                String str = new String(a, 0, n);
                System.out.println(str);
            }
            //返回字节对应的数值0-255
            while ((n = in.read()) != -1) {
                System.out.println("n:" + n);
            }
            in.close();
        } catch (IOException e) {
            System.out.println("e:" + e);
        }
    }
}

JAVA字节输出流:Java文件字节输出流_暴走小胡的博客-CSDN博客

JAVA字符输入输出流:Java文件字符输入、输出流_暴走小胡的博客-CSDN博客

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用文件字节输入文件字节输出可以实现文件的复制。具体步骤如下: 1. 创建文件字节输入对象,用于读取源文件。 2. 创建文件字节输出对象,用于写入目标文件。 3. 定义一个字节数组,用于存储读取的数据。 4. 使用循环读取源文件中的数据,并将读取的数据写入目标文件中。 5. 关闭文件字节输入文件字节输出。 示例代码如下: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { String sourceFilePath = "source.txt"; // 源文件路径 String targetFilePath = "target.txt"; // 目标文件路径 try { // 创建文件字节输入对象 FileInputStream fis = new FileInputStream(sourceFilePath); // 创建文件字节输出对象 FileOutputStream fos = new FileOutputStream(targetFilePath); // 定义一个字节数组,用于存储读取的数据 byte[] buffer = new byte[1024]; // 使用循环读取源文件中的数据,并将读取的数据写入目标文件中 int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } // 关闭文件字节输入文件字节输出 fis.close(); fos.close(); System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` ### 回答2: 文件复制就是将源文件的内容复制到目标文件中,Java中可以使用文件字节输入文件字节输出来实现文件的复制。 文件字节输入用于读取文件数据,文件字节输出用于写入数据到文件中。系统会根据输入和输出的位置进行数据的传输。文件字节输入文件字节输出都是字符,但是操作的是二进制数据,因此可以复制各种类型的文件,如文本文件、音频文件、视频文件等。 下面是使用文件字节输入文件字节输出实现文件复制的步骤: 1. 创建文件输入和输出,指定源文件和目标文件的路径。 FileInputStream fis = new FileInputStream("sourceFilePath"); FileOutputStream fos = new FileOutputStream("targetFilePath"); 2. 根据文件输入创建字节输入对象,根据文件输出创建字节输出对象。 BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(fos); 3. 使用循环读取输入中的数据,并写入到输出中。 byte[] buffer = new byte[1024]; int len; while ((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len); } 4. 关闭输入和输出。 bis.close(); bos.close(); 使用文件字节输入文件字节输出实现文件复制,可以保证文件内容的完整性,且具有较高的传输速度。但是需要注意,对于大文件的复制,要避免一次将整个文件读取到内存中,应当使用缓冲区进行分段读取。同时,还需要处理异常,确保程序的稳定性。 ### 回答3: 文件的复制是计算机操作中的常见需求,通过使用文件字节输入文件字节输出可以实现文件的复制。下面是实现文件复制的具体步骤: 1. 创建文件字节输入文件字节输出对象,并分别指定源文件和目标文件的路径。 ```java InputStream fis = new FileInputStream("source.txt"); OutputStream fos = new FileOutputStream("target.txt"); ``` 2. 读取源文件的内容,并将读取到的内容写入目标文件中。 ```java byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } ``` 3. 刷新输出,并关闭输入和输出。 ```java fos.flush(); fis.close(); fos.close(); ``` 通过以上步骤,即可实现文件复制功能。需要注意的是,复制文件时需要保证目标文件的路径是正确的,否则可能出现文件写入失败的情况。同时,读取和写入的缓冲区大小需要根据实际需求进行调整,过大或过小都可能影响到复制效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值