请教前辈一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
楼上正解