DataInputStream
действительно для чтения двоичных данных, например из розетки. Я думаю, что вам нужно просто FileReader
, а затем проанализировать с помощью Double.parseDouble(String)
или Double.valueOf(String)
- в зависимости от того, хотите ли вы получить примитив или удвоить объект.
Если ваш входной файл содержит каждое число в новой строке, вы можете использовать BufferedReader.readLine
. В противном случае вам потребуется простой анализ, например, найти пробел или значения через запятую.
Так, например, чтобы прочитать файл, содержащий каждое число в новой строке, вы можете сделать что-то вроде этого:
import java.io.*;
public class DoubleReader {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
String line = null;
while((line = reader.readLine()) != null) {
Double d = Double.valueOf(line);
System.err.println(d);
}
}
}
Но если ваш файл разделяет числа по-разному (например, пробел или запятая), вам потребуется проделать небольшую дополнительную / другую работу при чтении файла, чтобы извлечь (проанализировать) ваши значения.
Парсинг - это токенизация ваших данных, чтобы вы могли извлечь интересующие вас биты.