从java中的文件读取int

时间:2011-06-22 10:27:57

标签: java file-io

我有一个* .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شQ­0H888/ ح‎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个字符。 我怎么读它们?

2 个答案:

答案 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!");
        }
}