`
Luob.
  • 浏览: 1592199 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之 21天 (三)"联通" 乱码 和 IO练习

    博客分类:
  • Java
阅读更多
需要明白 UTF-8 编码 格式规则

/**
 * 记事本中的 联通的 编码问题
 *
 */
public class LiantongDemo {

	
	public static void main(String[] args) throws IOException {

		String s="联通";
		byte[] by=s.getBytes("gbk");
		System.out.println(Arrays.toString(by)); //[-63, -86, -51, -88]
		for (byte b : by) {
			System.out.println(Integer.toBinaryString(b&255)); //&255 是为了获取有效位
		}
		
		/*打印出来的 是 符合 UTF-8 编码格式.所以 记事本就开始使用  UTF-8 来编码了
		11000001   
		10101010
		11001101
		10101000*/
		System.out.println(new String(by,"UTF-8"));
	}

}



IO练习

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

/**
 * 有5个学生,每个学生有3门课程的成绩
 * 从键盘输入以上数据 包括 (姓名,3门 课程的成绩).
 * 输入的格式,如: 张三,30,40,60 计算出总成绩.
 * 并把学生的信息和计算出来的总分的高低顺序存放在磁盘文件stu.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 String getName(){
		return name;
	}
	public int getSum(){
		return sum;
	}
	
	public int hashCode(){
		return name.hashCode()+sum*2;
	}
	
	public boolean equals(Object obj){
		if(!(obj instanceof Student)){
			throw new RuntimeException("类型不匹配");
		}
		Student s=(Student)obj;
		return name.equals(s.name) && this.sum==s.sum;
	}
	
	
	public int compareTo(Student s){
		int num=new Integer(sum).compareTo(new Integer(s.sum));
		if(num==0)
			return this.name.compareTo(s.name);
		return num;
	}
	
	public String toString(){
		return "Student["+name+", "+ma+", "+cn+", "+en+"]";
	}
}

class StudentInfoTool{
	
	public static Set<Student> getStudents() throws Exception{
		return getStudents(null);
	}
	
	public static Set<Student> getStudents(Comparator<Student> cmp) throws Exception{
		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],
					new Integer(info[1]),
					new Integer(info[2]),
					new Integer(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()+"\t");
			bufw.write(stu.getSum()+"");
			bufw.newLine();
			bufw.flush();
		}
		bufw.close();
	}
	
	
}

public class StudyDemo {

	public static void main(String[] args) throws Exception {
		
		Comparator<Student> cmp=Collections.reverseOrder();  //使用比较器反转
		
		Set<Student>stus=StudentInfoTool.getStudents(cmp);
		
		StudentInfoTool.write2File(stus);

	}

}


0
1
分享到:
评论

相关推荐

    java读写csv文件,中文乱码问题

    5. **使用第三方库**:有一些Java库,如OpenCSV、Apache Commons CSV或JDBC的`ResultSet`,它们提供更高级的功能,包括自动处理编码问题。这些库可以简化读写操作,并减少出错的可能性。 然而,给定的文件列表`...

    java中文乱码之解决URL中文乱码问题的方法

    总之,解决Java中的URL中文乱码问题需要理解URL编码的原理,并在客户端和服务器端采取相应的措施,确保编码和解码的一致性。无论是通过JavaScript编码、Java服务器端解码,还是调整服务器配置,关键在于确保字符集的...

    java压缩zip文件解决中文乱码问题

    总结来说,处理Java中ZIP文件的中文乱码问题,关键在于明确指定字符集,通常是UTF-8,无论是使用Java内置的API还是第三方库。同时,理解文件系统的编码和压缩/解压过程中的字符编码转换也非常重要。通过这种方式,...

    JAVA反编译文件解决中文乱码

    在Java开发过程中,有时我们需要查看或分析已编译的.class文件中的源代码,这就涉及到Java的反编译技术。反编译是将字节码还原为接近原生的源代码的过程,常用工具有JD-GUI,它是一款直观的Java反编译器。然而,当...

    java中文乱码解决问题

    JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的表单数据中有中文字符 在...

    Java Http请求传json数据乱码问题的解决

    例如,使用`request.getParameter("params")`获取参数时,如果请求时的编码和服务器端解析的编码不一致,就会出现乱码。在本例中,服务端代码使用了`StringEscapeUtils.unescapeJava`方法进行了解码尝试,该方法可能...

    Java关于中文乱码问题的多种解决方法

    在Java编程中,中文乱码问题是一个常见的困扰,尤其是在处理文件读写、网络传输或数据库操作时。本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中...

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...

    JAVA 解决Properties文件保存中文乱码

    本文将深入探讨如何在Java中解决Properties文件保存和读取中文乱码的挑战。 首先,我们需要理解Java默认使用ISO-8859-1编码来处理Properties文件。由于此编码不支持大部分中文字符,因此在保存或加载包含中文的...

    java c++ 通信之间的乱码解决方法

    Java和C++之间进行Socket通信时,可能会遇到乱码问题,主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C++在Windows XP环境下可能使用GBK编码。解决这个问题的关键在于确保数据在传输过程中保持正确的...

    java zip解压中文乱码问题

    网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...

    java Socket与C#通信中中文乱码问题的解决方案

    在Java和C#之间进行Socket通信时,遇到中文乱码问题主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C#在处理字符串时可能使用其他编码,如GBK或ASCII。为了解决这个问题,我们需要确保两端在发送和接收...

    java传值中的乱码

    ### Java传值中的乱码问题及最简易的解决方法 在Java Web开发中,经常会遇到一个令人头疼的问题:客户端向服务器传递数据时出现乱码。这种情况不仅会影响用户体验,还可能导致程序逻辑错误。本文将深入探讨Java传值...

    Java读取TXT文本文件乱码解决方案.doc

    本文提供了 Java 读取 TXT 文本文件乱码解决方案,并讨论了 TXT 文件的编码格式和获取编码格式的方法。 知识点: * Java 读取 TXT 文本文件时可能出现乱码的问题 *乱码的问题是由于文件的编码格式引起的 * 使用 ...

    [Java]PDF转图片解决中文乱码.zip

    PDF转图片是将PDF文档转换成图像格式的过程,这在处理PDF中的中文字符时尤为重要,因为转换后的图片可以避免文字乱码问题。Java中的PDFBox库是一个强大的工具,专门用于处理PDF文档,包括将PDF转换为图像。在这个...

    java获取乱码问题

    通过上述方法,可以有效地解决Java Web应用中常见的乱码问题,提高用户体验和系统的稳定性。此外,对于更复杂的多语言环境,还应该考虑采用国际化和本地化策略,以更好地支持不同地区的用户需求。

    Java生成pdf文件,解决中文乱码问题.pdf

    Java 生成 PDF 文件,解决中文乱码问题 Java 生成 PDF 文件,解决中文乱码问题是 Java 编程中常见的问题。解决这个问题的关键是正确地设置中文字体,以避免乱码问题。本文将通过一个完整的示例代码,详细讲解如何...

    java中文乱码大全

    Java中文乱码问题是编程者在开发Java应用程序时经常遇到的问题,尤其是涉及到中文字符处理时。这些问题产生的根本原因在于...通过上述方法,可以最大限度地减少和解决Java中文乱码问题,提高Java程序的兼容性和稳定性。

    Java乱码学习 Java乱码学习

    Java 乱码问题一直是开发过程中常见的困扰之一,它涉及到字符编码的理解、文件编码的设定以及网络传输中的编码处理。本文将深入探讨Java编程中的乱码现象,并提供一系列的解决策略。 首先,我们要理解两个基本概念...

Global site tag (gtag.js) - Google Analytics