Heim >Java >javaLernprogramm >Wie kann ich die Byte Order Mark (BOM) beim Lesen von Dateien in Java effizient überspringen?
Byte Order Mark (BOM) in Java kann Probleme beim Lesen von Dateien verursachen
Für Code-Autoren, die BOM in ihr Dateiformat schreiben, ist BOM beispielsweise nützlich. Wenn es jedoch darum geht, diese Dateien zu lesen, insbesondere bei einer plattformunabhängigen Sprache wie Java, kann die Situation kompliziert sein.
Um die Stückliste zu überspringen, führen Sie die folgenden Schritte aus:
Hier ist ein Beispiel, wie man die Stückliste überspringt und die Datei liest:
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) { // 处理读取到的字节 } } } }
Mit dieser Methode können Sie beim Lesen der Datei, die die Stückliste enthält, überspringen und die Datei lesen den Dateiinhalt genau.
Das obige ist der detaillierte Inhalt vonWie kann ich die Byte Order Mark (BOM) beim Lesen von Dateien in Java effizient überspringen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!