#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.