Хорошо, давайте попробуем еще раз, извините за плохой титул Я не знаю, как это назвать. Я еще не делал много файлов ввода-вывода, я лично считаю, что Java абсолютно ужасен, но тем не менее я должен это делать.Ввод/вывод файлов, хранение данных
Немного информации о фоновом режиме, это мой проект «Жизнь жизни Конвей», и весь мой другой код работает отлично. Мне просто нужно сделать ввод/вывод.
Я читаю текст из текстового файла, который выглядит как this.
Итак, что это такое, это первые два числа, размер которых должен быть массивом, строка после них не имеет значения. И после этого массив расположения ячеек в этом примере - это планер. Теперь моя проблема в том, что я не знаю, как сохранить первую строку в String, а остальное в массиве. Ниже приведено то, что я сделал, и приготовьтесь к большому О из n^∞.
public char[][] fileIO(){
ArrayList<String> list = new ArrayList<String>();
char[][] newArray;
String[] tokens;
BufferedReader reader;
String inputLine;
try{
reader = new BufferedReader(new FileReader("untitled.txt"));
while((inputLine = reader.readLine()) != null){
list.add(inputLine);
}
reader.close();
}catch (IOException e){
System.out.println(e);
}
tokens = list.get(0).trim().split("\\s+");
newArray = new char[Integer.parseInt(tokens[0])][Integer.parseInt(tokens[1])];
for(int row = 0; row < newArray.length; row++){
for(int col = 0; col < newArray[row].length; col++){
for(int line = 1; line < list.size(); line++){
for(int Char = 0; Char < list.get(line).length(); Char++){
newArray[row][col] = list.get(line).charAt(Char);
}
}
}
}
return newArray;
}
Я знаю, что есть недостаток комментариев, поэтому я попытаюсь объяснить, что я пытался сделать сейчас;
Я прочитал из файла и хранить все это в ArrayList
Получил знаки первого типа (10 20 Glider), и создал экземпляр массив со значениями 10 и 20
Затем перешел к циклам строк и столбцов массива, затем каждой строке введенного массива, а затем пронесся через каждый символ этой строки, чтобы добавить в массив в их уважаемых положениях.
Однако, похоже, что это не работает, и я уверен, что есть намного более простой и эффективный способ сделать это. Поэтому я снова спрашиваю, может ли кто-нибудь сказать мне более простой способ сделать этот ввод-вывод? Мне не нужен код, просто объяснение, как это сделать.
_How_ не работает? Что происходит? – SLaks
Это похоже на дубликат вашего [предыдущего вопроса] (http://stackoverflow.com/questions/15078473/file-input-output). Если это так, пожалуйста, удалите это и отредактируйте старый, чтобы добавить какие-либо улучшения. –
«кажется, не работает» не очень полезно; дополнительная информация была бы полезна. Как общее замечание о том, как ускорить его, вы можете прочитать размер вашего массива, создать массив, а затем прочитать каждую строку файла и использовать [String.toCharArray()] (http://docs.oracle.com/JavaSE/6/Docs/API/Java/языки/String.html # toCharArray()), чтобы назначить каждую строку вашего файла массиву. –