Maison >Java >javaDidacticiel >Comment puis-je ignorer efficacement la marque d'ordre des octets (BOM) lors de la lecture de fichiers en 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 :
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!