读取二进制文件和普通文件的区别

  1. 读取方式:普通文件是以文本形式存储的,可以直接使用文本读取方法(如FileReaderBufferedReader等)来逐行读取文本内容。而二进制文件是以二进制数据形式存储的,需要使用二进制读取方法(如InputStreamRandomAccessFile等)读取数据。
  2. 数据解析:普通文件的数据是以字符形式存储的,文件内容包含文本字符,可以直接进行解析和处理。而二进制文件的数据是以字节形式存储的,需要对字节进行解析和处理,例如将字节流转换为其他数据类型(整数、浮点数等)。
  3. 编码方式:普通文件通常使用文本编码方式(如UTF-8、ASCII等)保存文本内容。而二进制文件不依赖于特定的编码方式,可以保存任意类型的二进制数据。
  4. 数据精确性:由于二进制文件以字节形式存储数据,可以保持数据的精确性。而普通文件在存储文本时可能受到编码和换行符等因素的影响,可能会导致字符解析的不一致性和精确性问题。 需要注意的是,读取二进制文件时需要特别注意数据的格式和字节顺序,确保正确地解析数据。不同的文件格式可能需要使用不同的库或API来读取和解析数据,具体实现取决于文件类型和数据结构。 总而言之,处理二进制文件需要使用专门的二进制读取方法,而处理普通文件(文本文件)可以使用文本读取方法。读取二进制文件时需要对数据进行精确的解析和处理。
    public static String readFile(String filePath) {
            if(extension.equals("二进制文件后缀")){
                try {
                    FileInputStream fileInputStream = new FileInputStream(filePath);
                    byte[] data = new byte[fileInputStream.available()];
                    fileInputStream.read(data);
                    fileInputStream.close();
                    String base64Data = Base64.getEncoder().encodeToString(data);
                    return base64Data;
                }catch (FileNotFoundException e){
                    // 处理文件路径找不到异常)
                    throw new ProjectException(404,"不存在该文件");
                }
            }else{
                try {
                    File file = new File(filePath);
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    String line;
                    while ((line = reader.readLine()) != null) {
                        String jsonData = new String(line.getBytes(), StandardCharsets.UTF_8);
                        return jsonData;
                    }
                    return null;
                }catch (FileNotFoundException e) {
                    // 处理文件路径找不到异常)
                    throw new ProjectException(404, "不存在该文件");
                }
            }
    
        }

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值