编码

public class EncodeStream_6 {

    public static void main(String[] args) throws IOException {
        
        //writeText();
        readText();
    }
    public static void readText() throws IOException
    {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("utf.txt"),"GBK");
        char[] buf = new char[10];
        int len = isr.read(buf);
        String str = new String(buf,0,len);
        System.out.println(str);
        isr.close();
    }
    public static void writeText() throws IOException
    {
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("utf.txt"),"UTF-8");
        osw.write("你好");
        osw.close();
    }

}
EncodeStream_6
/*
编码:字符串变成字节数组。


解码:字节数组变成字符串。

String-->byte[];    str.getBytes(charsetname);

byte[] -->String;    new String(byte[],charsetName);
    
 */
public class EncodeDemo_7 {

    public static void main(String[] args) throws UnsupportedEncodingException  {
        /*
        String s = "你好";
        byte[] b1 = s.getBytes("UTF-8");
        
        System.out.println(Arrays.toString(b1));
        String s1 = new String(b1,"UTF-8");
        System.out.println("s1="+s1);
        */
        //出现乱码解决方法
        String s = "哈哈";
        byte[] b1 = s.getBytes("GBK");
        
        System.out.println(Arrays.toString(b1));
        String s1 = new String(b1,"utf-8");
        System.out.println("s1="+s1);
        //乱码再进行编码一次,所得再解码一次
        //对s1进行ISO8859-1编码
        byte[] b2 = s1.getBytes("utf-8");  //utf-8与gbk都识别中文导致此方法不可以用
        System.out.println(Arrays.toString(b2));
        String s2 = new String(b2,"GBK");
        
        System.out.println("s2="+s2);
    }

}
EncodeDemo_7

/*
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括姓名,三门成绩),
输入的格式,如,zhangsan,30,40,60计算出总成绩,
并把学生的信息和计算出的总分数高低顺序存放在磁盘文件“stud.txt”中。

思路:
1、描述学生对象。
2、定义一个可以操作学生对象的工具类。

思想:
1、通过获取键盘录入一行数据,并将该行数据中信息取出封装成学生对象。
2、因为学生对象有很多,那么就需要存储,使用到集合,因为要对学生的总分排序,
所以可以使用TreeSet
3、将集合的信息写入到一个文件中。

*/

class Student implements Comparable<Student>
{
    private String name;
    private int ma,cn,en;
    private int sum;
    Student(String name,int ma,int cn,int en)
    {
        this.name = name;
        this.ma = ma;
        this.cn = cn;
        this.en = en;
        sum = ma + cn + en;
    }
    public int compareTo(Student s)
    {
        int num = new Integer(this.sum).compareTo(s.sum);
        if(num==0)
            return this.name.compareTo(s.name);
        return num;
    }
    public String getName()
    {
        return name;
    }
    public int getSum()
    {
        return sum;
    }
    public int hashCode()
    {
        return name.hashCode()+sum*78;
    }
    public boolean equals(Object obj)
    {
        if(!(obj instanceof Student))
            throw new ClassCastException("类型不匹配");
        Student s = (Student)obj;
        return this.name.equals(s.name) && this.sum==sum;
    }
    public String toString()
    {
        return "student["+name+","+ma+","+cn+","+en+']';
    }
}

class StudentInfoTool
{
    public static Set<Student> getStudent() throws NumberFormatException, IOException
    {
        return getStudent(null);
    }
    public static Set<Student> getStudent(Comparator<Student> cmp) throws NumberFormatException, IOException
    {
        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        
        String line = null;
        Set<Student> stus = null;
        if(cmp==null)
            stus = new TreeSet<Student>();
        else
            stus = new TreeSet<Student>(cmp);
        while((line=bufr.readLine())!=null)
        {
            if("over".equals(line))
                break;
            String[] info = line.split(",");
            Student stu = new Student(info[0],Integer.parseInt(info[1]),
                    Integer.parseInt(info[2]),Integer.parseInt(info[3]));
            
            stus.add(stu);
        }
        bufr.close();
        return stus;
    }
    public static void write2File(Set<Student> stus) throws IOException
    {
        BufferedWriter bufw = new BufferedWriter(new FileWriter("stuinfo.txt"));
        
        for(Student stu : stus)
        {
            bufw.write(stu.toString()+"	");
            bufw.write(stu.getSum()+"");
            bufw.newLine();
            bufw.flush();
        }
        bufw.close();
    }

}
public class StudentInfoTest_9 {

    public static void main(String[] args) throws NumberFormatException, IOException {
        
        Comparator<Student> cmp = Collections.reverseOrder();
        Set<Student> stus = StudentInfoTool.getStudent(cmp);
        StudentInfoTool.write2File(stus);
    }

}
StudentInfoTest_9
原文地址:https://www.cnblogs.com/cailingsunny/p/4699041.html