import java.io.*;public class TestBufferedWriter {
public static void main (String[] args) { BufferedReader br = null;
BufferedWriter bw = null;
String s = null;
try {
br = new BufferedReader(new FileReader("d:/java/TestBufferedWriter.java"));
bw = new BufferedWriter(new FileWriter("BufferedReader.java"));//这个地方好像不能与类名相同?????
} catch(FileNotFoundException e) {
System.out.println("没有找到文件,可能文件路径不正确!");
} catch (IOException e) {
System.out.println("error!");
}
try{ 
while((s=br.readLine())!=null) {
System.out.println(s);
}
br.close();
} catch(IOException e) {
System.out.println("error");
} }
}有谁知道带注释的地方为什么不能用用户名作为文件名字,如果用了,当编译运行后,第二次在编译就会报错,谁能帮我解释一下啊!!!

解决方案 »

  1.   

    new FileWriter("BufferedReader.java"));//这个地方好像不能与类名相同????? 
    new FileWriter这个方法是创建一个文件
    你不能用TestBufferedWriter来创建TestBufferedWriter(重名~)
    当然你把创建出来的文件路径和TestBufferedWriter区分就可以了
    具体的可以查API看看
      

  2.   

    问题是现在BufferedReader br = null;这个就报错误!!!
      

  3.   

    bw = new BufferedWriter(new FileWriter("文件"));
    这句话建立了一个输出流——如果“文件”不存在,就在将当前文件夹下创建这个文件;如果“文件”存在,那将改写这个文件!
    在楼主的例子里,若带注释的地方用类作为文件名字,则这个输出流就定位到了这个文件上,也就是说,你的文件会被重写!而你的输出流里什么也没输出——那你这个文件就变成个什么内也没有的空文件了。这样,当你再次编译的时候当然就会出错了!
      

  4.   


    import java.io.*;public class TestBufferedWriter {
    public static void main(String[] args) { BufferedReader br = null;
    BufferedWriter bw = null;
    String s = null;
    try {
    br = new BufferedReader(new FileReader(
    "d:/java/TestBufferedWriter.java"));
    bw = new BufferedWriter(new FileWriter("BufferedReader.java"));// 这个地方好像不能与类名相同?????
    while ((s = br.readLine()) != null) {
    System.out.println(s);
    }
    br.close();
    } catch (FileNotFoundException e) {
    System.out.println("没有找到文件,可能文件路径不正确!");
    } catch (IOException e) {
    System.out.println("error!");
    } finally {
    try {
    if (br != null) {
    br.close();
    br = null;
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    } }
    }
      

  5.   


    public class Test {
    public static void main (String[] args) {BufferedReader br = null;
    BufferedWriter bw = null;
    String s = null;
    try {
    br = new BufferedReader(new FileReader("D:/_eclipse2/xxx/src/xxx/Test.java"));//你的路径改一下
    bw = new BufferedWriter(new FileWriter("Test.java"));//和类名一样,你试试
    } catch(FileNotFoundException e) {
    System.out.println("没有找到文件,可能文件路径不正确!");
    } catch (IOException e) {
    System.out.println("error!");
    }
    try{
    while((s=br.readLine())!=null) {
    System.out.println(s);
    }
    br.close();
    } catch(IOException e) {
    System.out.println("error");
    }}

      

  6.   

    好像没错误呀。打印正常。文件中内容全打印了呀。。
    而且BufferedReader.java也创建了。。
      

  7.   

    估计是包的导入的问题吧。
    如果是BufferedWriter bw = null; 这句出错,要看看是什么错误
    是不是说你导入了一个不明确的类?
    可能就是java.io.BufferedReader,与你新写的在默认包中的BufferedReader无法区分了。
      

  8.   

    编译的时候为无法访问FileWriter
    错误的类文件 .\FileWriter.java
    文件不包含类FileWriter
    请删除该文件或确保该文件位于正确的类路径子目录中。FileWriter fw = null;我想知道为什么出错,内在的出错原理感觉4楼和9楼的有点道理,那位还能再解释解释。