2017-06-22 3 views
-4

utiliser la fonction de « DataInputStream » appelé « readLong() » pour lire la valeur à partir d'une fin de fichier « txt ». Ce fichier a été édité à l'avance. Je veux obtenir la valeur correcte "123456789", mais la réponse est "3544952156018063160"readLong() retourne une valeur incorrecte

DataInputStream di = new DataInputStream(new FileInputStream("E:\\CMHI\\LocalHost\\src\\t.txt")); 
Long res = di.readLong(); 
System.out.println(res); 
di.close(); 
+3

veuillez poster le code réel et non les images –

+0

Vous lisez un fichier texte avec "123456789" écrit. – saka1029

+0

S'il vous plaît, mettez le code réel avec le contenu du fichier pour résoudre facilement votre problème. –

Répondre

2

De la JavaDoc pour DataInputStream

Retours:

les huit octets de cette flux d'entrée, interprété comme un long.

Ce n'est pas ce que vous voulez, parce que c'est un fichier texte, pas un binaire. Je recommanderais d'utiliser un Scanner pour lire ce fichier. Il a une méthode nextLong qui fait exactement ce que vous cherchez.

Scanner sc = new Scanner(new File("whatever.txt")); 
System.out.println(sc.nextLong());