本帖最后由 chcchb 于 2012-12-22 21:31:41 编辑

解决方案 »

  1.   

    一:如果你的操作不一定需要每个字符是啥,比如复制,直接用InputStream读,然后写到OutputStream二:你需要知道每个字符。首先,你肯定知道文件的编码。public static void main(String[] args) throws Exception {
            // 把文件按big5编码来读
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    new FileInputStream("a.txt"), "big5"));
            br.read();//读取一个字符
            br.readLine();// 读行
        }
      

  2.   

    1 没有什么“普通”“不普通”的编码,只有已知和未知的编码。只要你知道它是什么编码就行。2 知道编码用Writer 和 Reader直接转化。
      

  3.   

    2楼的方法后面的big5或者utf-8等参数  要系统支持的才有效前几天用过这个带指定编码来读,结果本地不支持客户指定的编码...
      

  4.   

    不知道编码怎么从byte[]转到String?byte[] data = Files.readAllByetes(Paths.get("D:/Temp","examples.txt"));
      

  5.   


    嗯,同意forgetsam。
    to 楼主:sum.io这个包下面有JDK所支持的编码。如果你的编码属于会报错的那种,你只能按forgetsam的方法来了