recherche
MaisonJavajavaDidacticielComment puis-je ignorer efficacement la marque d'ordre des octets (BOM) lors de la lecture de fichiers en Java ?

How Can I Efficiently Skip the Byte Order Mark (BOM) When Reading Files in Java?

Byte Order Mark (BOM) en Java peut causer des problèmes lors de la lecture de fichiers

Pour les rédacteurs de code qui écrivent la BOM dans leur format de fichier, disons, la BOM est utile. Cependant, lorsqu’il s’agit de lire ces fichiers, notamment pour un langage indépendant de la plateforme comme Java, la situation peut s’avérer compliquée.

Pour ignorer la nomenclature, suivez ces étapes :

  1. Obtenez le système de fichiers du système de fichiers en utilisant Path#getFileSystem() avec le package java.nio.
  2. Récupérez le FileSystemProvider du système de fichiers utilisé pour lire et écrire le répertoire racine du système de fichiers.
  3. Créez un StreamOpener pour gérer la nomenclature.
  4. Ouvrez le FileChannel à l'aide du StreamOpener fourni.

Voici un exemple de la façon de sauter la nomenclature et de lire le fichier :

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.nio.file.StreamOpener;
import java.nio.channels.FileChannel;

public class SkipBOMExample {

    public static void main(String[] args) throws IOException {
        Path file = Paths.get("path/to/file.txt");
        FileSystem fs = FileSystems.getFileSystem(file.getFileSystem());
        FileSystemProvider provider = fs.provider();

        StreamOpener opener = (Path path, StandardOpenOption... options) -> {
            FileChannel channel = provider.newByteChannel(path, options);
            // 跳过3个字节(BOM的大小)
            channel.position(3);
            return channel;
        };

        try (FileChannel channel = Files.newByteChannel(file, StandardOpenOption.READ, opener)) {
            byte[] bytes = new byte[1024];
            while (channel.read(bytes) != -1) {
                // 处理读取到的字节
            }
        }
    }
}

En utilisant cette méthode, vous pouvez sauter lors de la lecture du fichier contenant la nomenclature BOM et lire le contenu du fichier avec précision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP