我有一个* .txt文件,它有这样的数据:
1222 25 36 25 14 25 25 36 363 25 15
1253 69 54 87 54 285
]±غ'Qہx¸'،2ذç12â· 'ئ‰؟¦خ&{3ع*U6هؤر–¨ر،³ڑُں¢œغ)™پ÷ةtڑت†éYْ(زH5x¸2ش/¨#ژظœ,tx[Kh6”¨
rٹ±k'¨اqaيïذüـvqشQ0H888/ حlںR–>Kْ¹bف‘دô†)oŒىٹط.fNؤ8ک„ٌnpwَ§IMقJ™؟س5؛x.Zµ™7ˆے¨أئ°—لف):©¢چR¢سï¶J±@JœOْ5TMè§è9´«7 –دس54)ںشw>’âغ2›Zi@وûr& طFو-dة ôƒ( œءxƒ§أh(¢ش‘»إV¨پ~ؤF؟!]&´ye\جہ„°?ّ!Uج3صwyc†P`¬:
ِS…ةّEژœ Zشâku X§Rٌ¦ص«{â‹YwOڈ48¹Wٌ“i¾َه#™²|(³bˆiتژ-»çJ¯صl¦ر“+ءC’µہڈ™،£ظ(2€j¤ًگdك(`اء—꯳[f
前17个字符是整数,其他字符是二进制。
现在我想先阅读17个字符。 我怎么读它们?
答案 0 :(得分:3)
您可以使用java.io.Scanner
:
File f = new File("yourtxt.txt");
Scanner s = new Scanner(f);
for (int i = 0; i < 17 && s.hasNextInt(); ++i)
{
int inputInteger = s.nextInt();
// Handle your int here...
}
编辑:抛出的异常可能是因为整数之间不需要的字节。
也许你可以尝试这样做:
DataInputStream dis = new DataInputStream(new FileInputStream(yourFile));
String numbers = dis.readLine() + " " + dis.readLine();
numbers = numbers.trim().replaceAll(" +", " ");
String[] array = numbers.split(" ");
for (int i = 0; i < array.length; ++i)
{
int inputInteger = Integer.parseInt(array[i]);
// handle inputInteger here...
}
答案 1 :(得分:0)
我检查它并且有效
public static void main(String[] args){
File f = new File("my.txt");
if(f.exists()){
Scanner scanner = null;
try {
scanner = new Scanner(f);
int [] arrayInt = new int [17];
int i = 0;
while(scanner.hasNextInt()){
arrayInt[i++] = scanner.nextInt();
}
for(int tailElement : arrayInt){
System.out.println(tailElement);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}else{
System.out.println("File not found!");
}
}