小弟用RandomAccessFile类readLine()读取一文本文件时,打印出的都是乱码,请问如何才能正确打印呢?

解决方案 »

  1.   

    /**
     * 读入指定的文件到字符串中
     * 
     * @param filePathName
     *            文件路径名
     * @return 文件内容
     * @throws IOException
     *             文件读取失败
     */
    public static String readFile(String filePathName) throws IOException
    {
    String lineSeparator = System.getProperties().getProperty( "line.separator" );
    String strTemp;
    StringBuffer result = new StringBuffer();
    BufferedReader freader = null;
    try
    {
    freader = new BufferedReader( new FileReader( filePathName ) );
    while ((strTemp = freader.readLine()) != null)
    {
    result.append( strTemp );
    result.append( lineSeparator );
    }
    }
    catch (IOException ex)
    {
    throw ex;
    }
    finally
    {
    try
    {
    freader.close();
    }
    catch (IOException ex)
    {
    ex.printStackTrace();
    }
    }
    // 去除最后一个换行符
    return result.substring(0,result.length()-2);
    }
      

  2.   

    BufferedReader in  = new BufferedReader(new FileReader("XXX.txt"));
      

  3.   

    楼上两位的方法我知道的,小弟可能没说明白,今天 我发现用RandomAccessFile类也可以读取文件,于是就测试了一下,谁知打印出乱码,我的意思可不可以用编码转换的方法,能够正确显示,不会出现乱码。
      

  4.   


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Vector;class bufferedReader {//棙梡vector,v.elementAt()漄廀梫揑峴丅  public static void main(String[] args) {
        try {
          File file = new File("D:/java test/BufferedReader/temp.txt");
          BufferedReader in = new BufferedReader((new FileReader(file)));
          String s = "";
      String foundline="sadf";
          StringBuffer str = new StringBuffer();
          Vector v = new Vector();      while ((s = in.readLine()) != null) {
            v.addElement(s);
          }      in.close();
          for (int i = 0; i < v.size(); i++) {
            System.out.println((String) v.elementAt(i));
    //if(v.elementAt(i).equals(foundline)){System.out.println(i);break;}
          }
        } catch (FileNotFoundException e) {
          System.out.println("file");
        } catch (IOException e) {
          System.out.println("IO");
        }
      }
    }