我有两个utf8文件,其中一个是用繁体汉字,另一个是繁体和简体对照表
我的任务是 读两个文件,依据对照表中的简繁体内容把那个 繁体的utf文件转化为简体中文,怎么做啊?给我一些思路也行,。
   我现在是用字节读的

解决方案 »

  1.   

    读取对照表。取charAt替换就可以
      

  2.   

    charat是读字符串的时候用到的啊
    可我这里是字节数组
      

  3.   

    给出我的一些代码package file;
    import java.io.*;public class Pro2 { public static void readFile() {
    try {
    File file = new File("c:\\chinese\\trad-simp.utf-8");
    File file1 = new File("c:\\chinese\\input-pinyin.utf-8");
    InputStream fin = new FileInputStream(file);
    InputStream fin1 = new FileInputStream(file1); byte[] a = new byte[200000];
    byte[] b = new byte[200000]; int len = 0;
    int len1 = 0; len = fin.read(a);
    len1 = fin1.read(b);
    System.out.println(len1);
    OutputStream out = new FileOutputStream("c:\\chinese\\text1.txt");
    byte[] c = new byte[10000];
    int k = 0;
    for (int i = 0; i < 2000; i++) {
    for (int j = 0; j < 2000; j++) {
    if ((a[i] == b[j])
    & (a[i + 1] == b[j + 1])
    & (a[i + 2] == b[j + 2]))
    //if (a[i + 1] == b[j + 1])
    //if (a[i + 2] == b[j + 2])
    {
    System.out.print(
    "a" + i + " and" + " b" + j + " 是同一个字 \n");

    c[k] = a[i];
    c[k + 1] = a[i + 1];
    c[k + 2] = a[i + 2];
    k++;

    }

    }
    }
    out.write(c);
    fin.close();
    fin1.close();
    /*if ((len = fin.read(a)) != -1) {
    if((len=fin1.read(b))!=-1)
    System.out.println("4545");
    }*/ } catch (IOException e) {
    }
    }
    public static void main(String[] agrs) {
    readFile();
    }}
      

  4.   

    给个思路,楼主可以参考,你用inputstream把对照的那个utf文件读进来的时候是字节数组对吧,你用String(byte[] bytes, String charsetName) 把这个数组转换成字符串,当然,这个时候的charsetName为UTF-8, 然后你对这个string进行分析,按照繁体为key,简体为value的方式把这个对照表放到一个hashmap里面去,然后在用同样的方式去读那个繁体的文件,把读出来的繁体去hashmap里面匹配就得到简体了。这个设计关键的思想是利用jdk把文件里的不同编码同一成java的内部编码,再利用hashmap的功能去匹配。
      

  5.   

    用map 繁体的是键  简体的是值