首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问前辈一IO有关问题!

2012-01-26 
请教前辈一IO问题!!!!!!!importjava.io.*publicclassIOTest{publicstaticvoidmain(String[]args){Filefil

请教前辈一IO问题!!!!!!!
import   java.io.*;
public   class   IOTest   {
public   static   void   main(String   []   args){
File   file   =new   File( "E:/IOTest ");
BufferedReader   in   =null;
Writer   out   =null;
try{
in=   new   BufferedReader(new   InputStreamReader(new   FileInputStream(file)));
out   =new   OutputStreamWriter(new   FileOutputStream(file));
out.write( "++++++++++++++++++++++ ");
}catch(IOException   e){
e.printStackTrace();
}
}
}
运行上面的程序时报错:java.io.FileNotFoundException:   E:\IOTest   (系统找不到指定的文件。)

把程序改成如下时:
import   java.io.*;
public   class   IOTest   {
public   static   void   main(String   []   args){
File   file   =new   File( "E:/IOTest ");
if(!file.exists()){
System.out.println( "++++++++ ");
try{
file.createNewFile();
}catch   (IOException   e){
e.printStackTrace();
}
}
BufferedReader   in   =null;
Writer   out   =null;
try{
in=   new   BufferedReader(new   InputStreamReader(new   FileInputStream(file)));
out   =new   OutputStreamWriter(new   FileOutputStream(file));
out.write( "++++++++++++++++++++++ ");
}catch(IOException   e){
e.printStackTrace();
}
}
}
没有报错,但IOTest是空的。求前辈指点一二

[解决办法]
File file =new File( "E:/IOTest "); // 这是一个文件还是一个目录,如果是文件,
得有扩展名才对,如: test.txt
[解决办法]
你确定你电脑的E盘下有IOTest.txt这个文件吗?大小写都符合?
[解决办法]
out.write( "++++++++++++++++++++++ ");
out.flush();
....
out.close();
[解决办法]
1、在out.write( "+++++++++++++++++ ");后面加out.flush();就可以了,因为Writer类是同步的
2、不要忘记在finally中关闭两个流
3、跟.txt没关系,.txt只是windows下确认文本文件的方式,在其他系统中,如:unix,linux中,是没有意义的,只是作为文件名的一部分而已,在windows中即使不是.txt也可以用文本编辑器打开,如记事本
4、建议用PrintWriter代替Writer,因为PrintWriter类有writeUTF()方法可以写字符串,还可以写各种基本类型,不过PrintWriter也是有缓冲的,也需要flush()
[解决办法]
up

楼上正解

热点排行