日期:2014-05-20  浏览次数:20829 次

写了个小程序,发现写入文件时如果文件是只读的,程序不会抛出异常 菜鸟求指教


import java.io.DataOutputStream;
import java.io.IOException;

public class FileOutputStream1 {
public void FileOutput(String Filename) throws IOException
{

double Random;
MyLog mylog = new MyLog();

try{
DataOutputStream out = new DataOutputStream(new java.io.FileOutputStream(Filename,true));
for(int i = 0;i<100000;i++)
{
Random = Math.random();
out.writeDouble(Random);
}
out.close();
}catch(IOException e)
{
//e.getStackTrace();
mylog.addLog(Loggable.TYPE.ERROR, e.getMessage());
}// 在这儿  捕获不到文件只读的异常
}
}


import java.io.DataOutputStream;
import java.io.BufferedOutputStream;

import java.io.FileOutputStream; 
import java.io.IOException;

public class BufferedOutputStream1 {
MyLog mylog = new MyLog();

public void BufferedOutput(String Filename)throws IOException
{
double Random;


try {
DataOutputStream out = new DataOutputStream(     
        new BufferedOutputStream(     
        new FileOutputStream(Filename,true)));
for(int i = 0;i<100000;i++)
{
Random = Math.random();
out.writeDouble(Random);
}
out.close();

} catch (IOException e) {
//e.getStackTrace();
mylog.addLog(Loggable.TYPE.ERROR, e.getMessage());
} //这儿好像也捕获不到。
}
}
这两个类是分别使用缓冲类和不使用缓冲类在一个二进制文件中写入10万个二进制数。

mylog 类是将所获得的信息写入一个日志文件中。

求解释~~


------解决方案--------------------
public void FileOutput(String Filename) throws IOException
你这都把异常给抛出了,还捕获啥啊。
删掉 throws IOException再试试
------解决方案--------------------
引用:
public void FileOutput(String Filename) throws IOException
你这都把异常给抛出了,还捕获啥啊。
删掉 throws IOException再试试
正解