Я использую PrintWriter для создания нового результирующего файла. Это обобщенная версия моей программы:
Код: Выделить всё
ArrayList exampleArrayList = new ArrayList();
File actualInputFile = new File("C:/Desktop/example.java");
PrintWriter resultingSpreadsheet= new PrintWriter("C:/Desktop/SpreadsheetValues.txt", "UTF-8");
FileReader fr = new FileReader(actualInputFile);
BufferedReader br = new BufferedReader(fr);
String line=null;
while ((line = br.readLine()) != null) {
// code that makes ArrayList
}
for (int i = 0; i < exampleArrayList.size(); i++) {
resultingSpreadsheet.println(exampleArrayList.get(i));
}
resultingSpreadsheet.close();
НО эта программа работает отлично (это означает, что она правильно распечатывает все в результирующий файл электронной таблицы), когда я заменяю:
Код: Выделить всё
File actualInputFile = new File("C:/Desktop/example.java");
с:
Код: Выделить всё
File smallerInputFile = new File("C:/Desktop/smallerExample.txt");
Я пробовал несколько вещей, включая очистку PrintWriter, обертывание его вокруг FileWriter, копирование всего кода из файла .java в текстовый файл на случай, если это проблема с расширением, но это не кажется работать.
Я начинаю думать, что это должно быть из-за размера файла, который создает PrintWriter, но вполне возможно, что проблема не в этом. Возможно, мне нужно поместить все в поток (как здесь написано: http://docs.oracle.com/javase/6/docs/ap ... riter.html)? Если да, то как мне это сделать?
Почему чтение большего фактического файла InputFile и правильный вывод его данных представляет собой такую проблему, когда с меньшим входным файлом все работает нормально?
Может ли кто-нибудь помочь с этим?