Я относительно новичок в Java, поэтому мне нужно постоянно искать, как делать вещи. Я работаю над проектом, который включает в себя анализ ряда знакомых типов, таких как сортировка кучи, сортировка слияния и т. Д. Я написал немного кода для создания множества различных массивов, каждый в своем собственном .txt-файле. Вот часть кода:Java-чтение целых массивов из нескольких файлов
import java.io.*;
import java.util.Arrays;
import java.util.Collections;
public class ArrayBuilder {
public static void main(String[] args) throws IOException {
for(int i = 2; i < 7; i++) {
int aLength = (int)Math.pow(10, i);
buildAscendingArray(aLength);
buildDescendingArray(aLength);
buildRandomArray(aLength);
}
}
public static void buildAscendingArray(int arrayLength) throws IOException {
File file = new File("arrays_" + arrayLength + "A.txt");
PrintWriter printWriter = new PrintWriter(file);
int[] array = new int[arrayLength];
for(int i = 0; i < array.length; i++) {
array[i] = i + 1;
}
printWriter.println(Arrays.toString(array));
printWriter.close();
}
я не включил случайные и нисходящие методы, поскольку они более или менее то же самое, так пытается сохранить номер. Итак ...
У меня уже есть все виды кодированных, я просто пытаюсь понять, как читать в массивах с целыми числами, чтобы я мог запускать их через разные типы. Я также пытаюсь добавить значение в System.nanoTime(), чтобы синхронизировать время, необходимое для запуска каждого типа, чтобы я мог сравнивать их с учетом различных входных данных. Не уверен, что это нужно добавить в метод для каждого вида или же он может быть реализован в вызове ie. System.nanoTime (heapsort (array)))?
В конечном счете, я ищу помощь в получении файлов .txt в полезный массив, чтобы передавать его через каждый вид. В первую очередь я выводю все в текстовые файлы, чтобы убедиться, что один и тот же массив запускается через каждый вид.
Я знаком со Сканером, но также прочитал о FileRead и/или BufferedReader и, возможно, о некоторых других подходах. Я просто недостаточно опытен, чтобы знать, что будет лучше всего работать в этой ситуации и лучший способ его реализации. Помощь будет высоко оценена.
Зачем вам нужно сохранить восходящий и нисходящий массивы? Разве эта логика не создавала бы такой же массив каждый раз? –
Вам действительно нужны текстовые файлы или просто хранилище файлов? Если вам просто нужно хранить файлы, вы можете записать массив как есть в файл и прочитать его напрямую с помощью ObjectOutputStream и ObjectInputStream. –
У меня уже есть текстовые файлы, независимо от того, является ли это наиболее эффективным способом делать вещи, не имеет значения. Я просто ищу помощь в том, как действовать, а не как начать все заново. На мой взгляд, это помогает с точки зрения разделения различных аспектов программы в целом. – TheDubiousDubber