Есть ли способ прочитать файл .dat на java и сохранить его в массиве int?

#java #arrays

Вопрос:

Я видел несколько подобных сообщений в прошлом, которые помогли мне с файлом .dat, однако я все еще застрял на части массива целых чисел. Итак, у меня есть файл .dat с десятью номерами 1-10. Я могу считывать целые числа с помощью потока ввода данных и снова записывать их, используя поток вывода данных, просто отлично. Я также хочу поместить десять целых чисел из файла .dat в массив int []. Когда я отлаживаю, я понимаю, что это неправильно считывается как «целые числа», если я помещаю инструкцию print и вижу, что она выводит на консоль что-то вроде «840966176». Итак, поскольку я новичок в программировании, как мне преобразовать то, что считывается с входных данных, в целое число, которое будет помещено в int []?

 public static void main(String[] args) throws IOException {
    try {
        int arrayCount=0;
        int[] intArray = new int[20];
        in = new File(args[0]);
        outfile = new File(args[1]);
        input = new DataInputStream(new FileInputStream(in));
        out = new DataOutputStream(new FileOutputStream(outfile, true));

        while (input.available() > 0) {
            n = input.readInt();
            intArray[arrayCount] = n;
            
            out.writeInt(n);
            arrayCount  ;
            
        } 
        
         input.close();
         out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 

Комментарии:

1. Не существует стандарта , определяющего, что .dat может содержать файл. Необработанные двоичные данные или некоторые данные в определенном собственном формате? Другими словами: реальный вопрос заключается в следующем: каковы ваши ожидания/требования, какие данные содержатся в вашем файле .dat?!

2. Любая реализация зависит от формы данных в считываемом файле. Java предоставляет ряд возможностей для анализа данных из потоков, поэтому вам не нужно возиться с байтами. Взгляните на классы BufferedReader и Scanner.