Hi,
I also run the same problem today.
Platform : MAC OS with
Java 1.6, Tomcat 6.x --
Purpose: Try to create a new file and write new file content inside Tomcat servlet.
Exception in Tomcat:
java.io.IOException: Bad file descriptor
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:297)
at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:130)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:216)
at java.io.BufferedWriter.close(BufferedWriter.java:248)
Code:
// write to the same file
File fh2 = null;
try {
fh = resource.getFile();
fh2 = new File(fh.getAbsolutePath() + ".new");
os = new FileOutputStream(fh2);
bw = new BufferedWriter(new OutputStreamWriter(os));
for (int i = 0; i < list.size(); i++) {
bw.write(list.get(i));
System.out.println(list.get(i));
}
} catch (Exception e) {
throw e;
} finally {
try {
if (os != null) {
os.close();
}