Ich weiß, dass skip(long)
Methode FileInputStream
Bytes von der Startposition der Datei überspringt und den Dateizeiger platziert. Aber wenn wir nur 20 Zeichen in der Mitte der Datei überspringen wollen, und den restlichen Teil der Datei als gelesen, was sollten wir tun?Skip() - Methode in IO Java?
Antwort
Sie sollten eine BufferedReader
verwenden. Seine skip
Methode überspringt Zeichen und nicht Bytes.
Um 20
Zeichen aus einem vorhandenen FileInputStream
überspringen:
BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
// read what you want here
reader.skip(20);
// read the rest of the file after skipping
Waooo, interessant –
@QuanNguyen - Denken Sie daran, dass * Streams an Bytes arbeiten, Leser/Schreiber an Zeichen arbeiten * – TheLostMind
Bedenken Sie, dass selbst 'BufferedReader.skip()' nicht unbedingt genau das tut, was Sie wollen Sie haben Zeichen außerhalb des [BMP] (https://en.wikipedia.org/wiki/Plane_ (Unicode) #Basic_Multicular_Plane). – Phylogenesis
einen Zähler mantain.
Schleifen Sie alle Zeichen, um den Zähler für jeden Lesevorgang zu erhöhen. Wenn Sie das Zählerlimit erreichen, das dem Beginn der zu überspringenden Zeichen entspricht, überspringen Sie die Zeichen, die Sie überspringen müssen.
int counter = 0;
while (counter < START_SKIP) {
int x = input.read();
// Do something
}
input.skip(NUM_CHARS_TO_SKIP);
...
// Continue reading the remainings chars
Bei Bedarf ist ein BufferedReader
Leistungen zu verbessern, wie Tunaki sagte (oder BufferedInputStream
je nach Art der Datei, die Sie lesen, wenn Binär- oder Textdatei).
- 1. Spring - Skip init-Methode im Komponententest
- 2. Entity Framework Skip-Methode läuft sehr langsam
- 3. Java File IO Schreiben
- 4. Unit Tests Datei IO Java
- 5. Java IO Leistung Ausgabe
- 6. Java IO Ausnahme: Stream geschlossen
- 7. Java IO, Socket-Server-Adresse
- 8. Die Methode 'Skip' wird nur für sortierte Eingaben in LINQ to Entities unterstützt. Die Methode 'OrderBy' muss vor der Methode 'Skip' aufgerufen werden.
- 9. Java IO zum Kopieren einer Datei in eine andere
- 10. Skip Refreshing Abhängigkeiten in Gradle
- 11. Skip/Mock Redis In Junit
- 12. Linq über Datentabelle mit .skip() und .Nehmen() Methode
- 13. Ein Bizzare Java IO Versagen, erklärt
- 14. Toten Einfache Java IO & Enum Frage
- 15. Java IO Performance XOR mit 2 Dateien
- 16. Gibt es eine einfache Java Regex (* SKIP) (* F) Alternative?
- 17. Skip List: Inserts
- 18. Skip UIImagePickerController Vorschau anzeigen?
- 19. Go test Skip-Verzeichnis
- 20. Skip maven2 plugin standardmäßig
- 21. Ghostscript Skip Box Dialog
- 22. Beinhaltet Socket IO Disk IO?
- 23. Haskell, wie IO IO Monad
- 24. Generische Methode in Java
- 25. Methode Stubs in Java
- 26. repaint() Methode in Java
- 27. MAGIC Nummer in Android Google io 2011 Java Quelle
- 28. Wird Filewatcher in Java als nicht blockierendes IO betrachtet?
- 29. Wie wird Apache Commons IO in Eclipse eingebunden? (Java)
- 30. "Lazy IO" in Haskell?
Überspringen funktioniert von der aktuellen Dateiposition. Verwenden Sie für Text einen Leser (InputStreamReader überbrückt binäre Bytes in Unicode-Java-Text). Verwenden Sie für die Pufferung eine Buffered ~ Version. –