当然输出的是ASCII码了,读进来的是按Byte读的,如果是英文应该就输出了!你读英文文档试试!

解决方案 »

  1.   

    注明你用的DataInputStream他读入的是一个byte,要是你想输出的话
    你用这一句就可以了
            System.out.print((char)in.read());
    或者你用BufferReader FileReader也可以。
      

  2.   

    上面的只能读取Ascii字符,
    下面使用BufferedReader FileReader实现,good luck
    import java.io.*;public class TestRead {
      public static void main(String args[]) {
        try {
          BufferedReader in = new BufferedReader(new FileReader("log.txt"));
          String str;
          //行读取方式
          while ( (str = in.readLine()) != null) {
            System.out.println(str);
          }
          in.close();
          BufferedReader in2 = new BufferedReader(new FileReader("log.txt"));
          //单字符读取方式
          for (int ch = 0; (ch = in2.read()) != -1; ) {
            System.out.print( (char) ch);
          }
          in2.close();
       }
        catch (Exception e) {
          System.err.println("File input error");
       }
     }}
      

  3.   

    非常感谢!我希望一行一行读取,但不用 FileReader,行吗?
      

  4.   

    当然可以,你先把byte读进来,存到一个数组bytes[]中,然后用String str1=new String(bytes),生成字符串不就可以了?
    如果你只是为了输出的话,System.out.println(str)是最好的,呵呵