Я пытаюсь использовать код, приведенный в следующем примере:org.apache.commons.fileupload.disk.DiskFileItem не создан должным образом?
java.lang.NullPointerException while creating DiskFileItem
Мой метод испытаний содержит следующий код:
final File TEST_FILE = new File("C:/my_text.txt");
final DiskFileItem diskFileItem = new DiskFileItem("fileData", "text/plain", true, TEST_FILE.getName(), 100000000, TEST_FILE.getParentFile());
diskFileItem.getOutputStream();
System.out.println("diskFileItem.getString() = " + diskFileItem.getString());
Текстовый файл существует в этом месте, но в последней строке в приведенном выше коде не выводится содержимое файла.
Любая идея, почему?
N.B.
Следующая делает печать содержимое файла:
BufferedReader input = new BufferedReader(new FileReader(TEST_FILE));
String line = null;
while ((line = input.readLine()) != null){
System.out.println(line);
}
Я думаю, что вы пропустили, что они сказали, что в ссылку, о которой я говорил выше. Они называют 'diskFileItem.getOutputStream();' просто для обхода некоторой ошибки. Но API действительно говорит, что 'diskFileItem.getString())' должен выводить файл. В любом случае, даже если я использую «BufferedReader input = new BufferedReader» (новый InputStreamReader (diskFileItem.getInputStream())), он все равно не выводит файл. Насколько я вижу, это означает, что 'diskFileItem' не содержит содержимого файла. – rapt
хорошо, что плохо, я не понимал, что вы пытались сделать. – TecHunter
Спасибо, он работает! Я понятия не имею, почему они пытались создать «DiskFileItem» через конструктор. Но использование фабрики определенно имеет больше смысла и фактически работает. – rapt