解决方案 »

  1.   

    把txt文本用记事本打开,然后另存为,选utf-8编码试试
      

  2.   


    不对不对。
    if(Character.isLowerCase(c)) {
                    c = (char)(c - 97 + key);
                } else if(Character.isUpperCase(c)) {
                    c = (char)(c - 65 + key);
                }
    c 是小写字母,然后 c = key。 key一般是移位数吧? 这样C就不是字母了。
      

  3.   

    貌似不在于读取和存储流上,好像用charAt()逐个取出字符的时候,加上+key就变成了乱码。
      

  4.   

    楼主这样试试(就是加个取余操作):c = (char)(97 + (c - 97 + key)%26);