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

  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, "不存在该文件");
                }
            }
    
        }

你可能感兴趣的:(java,开发语言)