import java.io.*;
public class TestPrintStream2 {
  public static void main(String[] args) {
    String filename = args[0];
    if(filename!=null){list(filename,System.out);}
  }
  public static void list(String f,PrintStream fs){
    try {
      BufferedReader br = 
                  new BufferedReader(new FileReader(f));
      String s = null; 
      while((s=br.readLine())!=null){
        fs.println(s);            
      }
      br.close();
    } catch (IOException e) {
      fs.println("无法读取文件");
    }
  }
}
这是个根据输入在命令行里得文件名 找到这文件名的文件 然后打印文件内容出来。  请问java程序系统怎么判断,这代码是找文件来读它里面得内容呢? 好像没写吧?
还有一程序  
import java.io.*;
public class TestPrintStream1 { 
  public static void main(String[] args) {
    PrintStream ps = null;
    try {
      FileOutputStream fos = 
              new FileOutputStream("d:\\bak\\log.dat");
      ps = new PrintStream(fos);
    } catch (IOException e) {
      e.printStackTrace();
    }
    if(ps != null){
      System.setOut(ps);
    }
    int ln = 0;
    for(char c = 0; c <= 60000; c++){
      System.out.print(c+" ");
      if(ln++ >=100){ System.out.println(); ln = 0;}
    }
  }
}这程序是打印字符得程序, 请问不是说 FileOutputStream不能打印中文吗?不是说Steam是字节不是字符吗?怎么打印出来的文本里有中文?

解决方案 »

  1.   

    第一道题好像有错  我Copy你的程序还不能运行 我修改一下  根据文件名读文件 只能读到跟程序在同一目录下的文件
    import java.io.*; 
    import java.util.Scanner;
    public class TestPrintStream2 { 
      public static void main(String[] args) { 
          args = new String[1]; 
          System.out.println("请输入文件名:");
          Scanner in = new Scanner(System.in);
          args[0] =  in.nextLine();  
      String filename = args[0]; 
        if(filename!=null){list(filename,System.out);} 
      } 
      public static void list(String f,PrintStream fs){ 
        try { 
          BufferedReader br = 
                      new BufferedReader(new FileReader(f)); 
          String s = null; 
          while((s=br.readLine())!=null){ 
            fs.println(s);            
          } 
          br.close(); 
        } catch (IOException e) { 
          fs.println("无法读取文件"); 
        } 
      }