Lesen Sie die ersten 10 bytes einer Datei in Java

    for (String name : filenames) {   
FileInputStream in = new FileInputStream(input.readUTF());   
    int byteCounter = 0;   
    int rowCounter = 0;   
    long bufferCounter = 0;   
    byte[] b = new byte[8];   
    int read;   

    //in.skip(10);   
    //while((read = in.read()) != -1){   
    while((read = in.read(b, 0, 10)) != -1){   
        byteCounter ++;   
        if (byteCounter != 1000){   
            if (rowCounter == 16){   
                System.out.println("\n");   
                rowCounter = 0;   
            }   
        System.out.print(Integer.toHexString(read) + "\t");   
            bufferCounter ++;   
            rowCounter ++;   
        }else{   
                byteCounter = 0;   
                try{   
                    Thread.sleep(200);   
                }catch(InterruptedException e) {   
                }   
        }   
    }   
    System.out.println("\n"+"================"+"\n");   
}  

Hallo zusammen, ich hatte gehofft, jemand könnte in der Lage sein, mir zu helfen mit einem Problem, das ich habe. Ich versuche, mein Programm zu Lesen in den ersten 10 bytes der angegebenen Datei. Kann ich es auf der Arbeit mit der skip (), aber offensichtlich ist dies nicht das Gegenteil von dem, was ich will (es entfernt die ersten 10 statt)
Ich habe überall gesucht ohne Erfolg, wenn Sie mir helfen können, das wäre toll.
Sie können sich wahrscheinlich sehen, dass ich versucht habe zu geben Sie die read(b, off, len) in den code schon, aber dieses nur erzeugt zufällige Zeichen als Ausgang anstatt die tatsächlichen hex-Zeichen will ich 74 65 71 etc (Edit: Diese willkürliche Zeichen zu sein scheinen, die hex-code für die Anzahl der bytes, die gelesen wurden. Also für eine Textdatei, die mit 23 hex-Zeichen in es, erzeugt es eine 3 (oder in anderen Worten: 10,10,3 = 23)

  • Ich bin ziemlich sicher, dass es scheitert bei in.read(b, 0, 10) Lesen weniger als 10 bytes. Er ist praktisch nie passiert, aber es gibt keine Garantie.
  • Ich siehe meinen vorherigen Kommentar nicht klar ist: ich meine: Es ist praktisch nie passiert, in Fall gibt es mehr bytes zur Verfügung, da Daten zu erhalten übertragen von der Festplatte in vielfachen der Sektorgröße.
  • :S Das hat sich völlig verloren, mir jetzt. Sie sagen, es ist etwas falsch/fehlt aus meiner Codierung? Tut mir Leid zu Fragen, aber Sie wissen...
  • Der andere Weg, geben Sie den code verloren ich. read ist die Anzahl der bytes, die gelesen, es kann alles sein zwischen 1 und 10. Sie betitelt die Frage Reading the first 10 bytes of a file aber Sie Lesen doch einige zufällige Anzahl von bytes wiederholt. Ihre byte-Zähler count liest anstelle von bytes. So wollen Sie wirklich Lesen, die ersten 10 bytes einer Datei? Wenn ja, dann schau dir meine Antwort, ansonsten betrachten die Umbenennung der Frage.
InformationsquelleAutor user585522 | 2011-01-22
Schreibe einen Kommentar