• 编码


    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
  • 相关阅读:
    特征工程系列:GBDT特征构造以及聚类特征构造
    SQL语句优化,数据分析师必须掌握!
    Win8下修改任務欄的資源管理器默認打開位置
    eclipse升级,导入旧版eclipse的插件[转]
    内网Linux对公网开启SSH
    windows上传文件到linux
    Chrome每次打開都要打開123.sogou.com
    maven下载的jar文件出现invalid LOC header (bad signature)
    requesting java ast from selection
    JConsole connection failed
  • 原文地址:https://www.cnblogs.com/cailingsunny/p/4699041.html
Copyright © 2020-2023  润新知