У меня есть проблема, которую я не могу решить самостоятельно.
Я большой любитель JAVA.
Я не знаю решения этой проблемы.Но я думаю, что знаю, когда возникнет эта проблема.Итак, у меня есть решение этой проблемы.Но я хочу другое решение, потому что у моего решения есть и другая проблема.Я должен сократить время процесса.
String intDir="C:\\RNE_IN";
while(true) {
File interfaceDirectory = new File(intDir);
String[] arrayfiles = interfaceDirectory.list(new FBMFileFilter());
for(String f : arrayfiles){
String filename = String.format("%1$s%2$s%3$s", intDir,File.separator,f);
File file = new File(filename);
FileInputStream stream = null;
System.out.println(file.canExecute()); // true
System.out.println(file.canRead()); // true
System.out.println(file.exists()); // true
System.out.println(file.isFile()); // true
System.out.println(file.length()); // call full bytes of file
// I can control NPE with this Thread sleep Time.
Thread.sleep(1);
// It occurs when Stream is constructed in the below.
stream = new FileInputStream(file);
FBMDeviceOnlyParser onlyparser = new FBMDeviceOnlyParser();
onlyparser.ParseDeviceNameOnly(stream);
String onlydevice = onlyparser.getDeviceName();
String onlystepseq = onlyparser.getStepSeq();
}
}
В приведенном выше фрагменте, я думаю, файл не имеет проблем.Состояние файла всегда истинно, а file.length - полный байт независимо от исключения.Но при бесконечном цикле, если я копирую и вставляю из другого каталога в intDir, возникает «NullPointerException».
Когда Thread.sleep (время) превышает 1000 мс, NPE не возникает.Я хочу удалить код "Thread.sleep ()" из-за времени процесса.
Если в intDir есть файлы, предшествующие запуску программы, у программы нет проблем (не возникает NPE)
Я хочу проверить состояние файла или FileInputStream, чтобы не возникало NPE.
Спасибо за беспокойство.