निम्न कोड हमेशा फ़ाइल नहीं बनाता है। जहां तक मैंने देखा, पहली बार इस कोड को चलाया गया है, हालांकि कोई अपवाद नहीं फेंक दिया गया है और बनाया गया है FileSucceeded == सत्य, फ़ाइल नहीं बनाई गई है।जावा file.createNewFile फ़ाइल नहीं बनाई गई और कोई अपवाद फेंक दिया गया
मैं विंडोज पर कोड, जावा 6.
चलाने किसी भी इनपुट मददगार हो सकता है
File file = new File(tmpDir, fileName);
try {
if (tmpDir == null) {
String environmentHomePath // = somePath;
tmpDir = new File(environmentHomePath, "SampleDumps");
if (! tmpDir.exists() || ! tmpDir.isDirectory()) {
boolean mkdirSucceeded = tmpDir.mkdir();
if (! mkdirSucceeded) {
throw new IOException("Failed creating directory: '" + tmpDir.getAbsolutePath() + "'");
}
}
}
if (file.exists()) {
boolean deleteFileSucceeded = file.delete();
if (! deleteFileSucceeded) {
throw new IOException("Unable to delete pre existing sample file: '" + fileName + "'");
}
}
boolean createFileSucceeded = file.createNewFile();
if (! createFileSucceeded) {
throw new IOException("Unable to create sample file: '" + fileName + "'");
}
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
StringBuilder sb = new StringBuilder("something...");
bw.write(sb.toString());
bw.flush();
}
catch (IOException ioe) {
log.warn("Unable to file invalid sample to file: '" + fileName + "'", ioe);
}
finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
log.warn("Unable to close Writer to file: '" + fileName + "'", e);
}
}
else if (fw != null) {
try {
fw.close();
} catch (IOException e) {
log.warn("Unable to close Writer to file: '" + fileName + "'", e);
}
}
}
हो सकता है कि उपयोगकर्ता को एप्लिकेशन को निष्पादित करने वाले उपयोगकर्ता के पास उस निर्देशिका में फ़ाइल बनाने के लिए पर्याप्त विशेषाधिकार नहीं हैं –
@LuiggiMendoza लेकिन दूसरी प्रक्रिया के लिए लगातार उसी प्रक्रिया में कोड चलाते हुए, फ़ाइल बनाते हैं। –
मैंने आपका कोड चलाने की कोशिश नहीं की है, लेकिन मुझे संदेह होगा कि उस निर्देशिका में मौजूद फ़ाइल बनाने के बाद tmpDir बनाने से फ़ाइल विधियों जैसे अप्रत्याशित व्यवहार हो सकता है()। – GreyBeardedGeek