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

关于FileReader的
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
 
public class Test {
  public static void main(String[] args) throws Exception {
  BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
  System.out.println(stdin.readLine());
  BufferedReader in = new BufferedReader(new FileReader("Test.java"));
  String s, s2 = new String();
  while ((s = in.readLine()) != null)
  s2 += s + "\n";
  in.close();
  StringReader in1 = new StringReader(s2);
  int c;
  while ((c = in1.read()) != -1)
  System.out.print((char) c);
  BufferedReader in2 = new BufferedReader(new StringReader(s2));
  PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter(
  "IODemo.out")));
  int lineCount = 1;
  while ((s = in2.readLine()) != null)
  out1.println(lineCount++ + ": " + s);
  out1.close();
  }
}
执行的时候
Exception in thread "main" java.io.FileNotFoundException: Test.java (系统找不到指定的文件。)
什么情况

------解决方案--------------------
在 eclipse 中运行、必须保证 Test.java 在项目根目录下。

相对路径是相对于 System.getProperty("user.dir") 而言的,若 Test.java 不在这个目录下 ,FileNotFoundException
------解决方案--------------------
我试过了,只要把类文件复制一下,放到项目的目录下,就可以运行了,这是结果:

ddd
ddd
package object;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;

public class Test {
public static void main(String[] args) throws Exception {
BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println(stdin.readLine());
BufferedReader in = new BufferedReader(new FileReader("Test.java"));
String s, s2 = new String();
while ((s = in.readLine()) != null)
s2 += s + "\n";
in.close();
StringReader in1 = new StringReader(s2);
int c;
while ((c = in1.read()) != -1)
System.out.print((char) c);
BufferedReader in2 = new BufferedReader(new StringReader(s2));
PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter(
"IODemo.out")));
int lineCount = 1;
while ((s = in2.readLine()) != null)
out1.println(lineCount++ + ": " + s);
out1.close();
}
}