Это самый простой способ, но он выбрасывает, если доступно менее 10 байтов. Если вы не хотите этого, используйте цикл. Почему-то я не понимаю, что вы делаете, это действительно не похоже на чтение первых 10 байтов:
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");
}
т, я надеялся, что кто-нибудь сможет мне помочь с проблемой, с которой я столкнулся. Я пытаюсь заставить мою программу читать первые 10 байтов указанного файла. Я могу заставить его работать с skip (), но, очевидно, это противоположно тому, что я хочу (вместо этого удаляются первые 10). Я просмотрел все безрезультатно, если вы можете мне помочь, это было бы здорово. Вы, вероятно, можете видеть, что я уже пытался ввести чтение (b, off, len) в код, но это просто производит случайные символы в качестве выходных данных, а не фактические шестнадцатеричные символы, которые я хочу 74 65 71 и т. Д. (Редактировать: эти случайные символы представляют собой шестнадцатеричный код для числа прочитанных байтов, поэтому для текстового файла, содержащего 23 шестнадцатеричных символа, он выдает aa 3 (или, другими словами: 10,10,3 = 23)