题目:文件intel.txt,内容如下:
小王【空格】10000【回车】
小强【空格】12345【回车】
小张【空格】2342 【回车】
小强【空格】1030 【回车】
小周【空格】1020 【回车】
请编写一程序
从test.txt中读取数据,并按数字大小排序后写入另一文件sun.txt(写入格式同上)
下面是自己编写的程序代码,小弟刚毕业所学有限所幸要求功能是实现了,然必定有不规范不合理之处还望大家多多指教修正!!(希望大家提供些更合理的排序)
------------------------------------------------------------------
import com.j2se.file.MyIntComparator;//自定义比较器
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.TreeMap;
/***
*读文件test.txt内容(文件内容格式: 小王【空格】10000【回车】
* 小强【空格】12345【回车】
*并对该文件内容按存款数排序,然后将其写入另一文件内
*
*****/
public class fileSort {
/*****
* 以行为单位读写文件
*@param fileName 源文件
*@param toFileName 目标文件
* ****/
public static void read_writeFile(String fileName,String toFileName){
File file = new File(fileName);
BufferedReader reader=null;
TreeMap<Integer,String> map = new TreeMap<Integer,String>(new MyIntComparator());
File toFile = new File(toFileName);
PrintWriter writer = null;
try{
System.out.println("------------------读文件开始-------------------------------");
System.out.println();
System.out.println("以行为单位读取文件内容,每次读取一整行");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
String[] ss = null;
int line = 1;
//一次读一行,直到读取为null
while((tempString = reader.readLine()) != null){
//显示行号
System.out.println("line number is "+line+"::"+tempString);
line++;
ss = tempString.split(" ");
int i = 0;
String value = ss[i];
int key =Integer.parseInt(ss[i+1]);
System.out.println("key is:"+key);
System.out.println("value is:"+value);
map.put(key, value);
}
System.out.println("------------------读文件结束-------------------------------");
System.out.println();
System.out.println("------------------写文件开始-------------------------------");
System.out.println("写文件开始:"+file.getAbsolutePath());
writer = new PrintWriter(new FileOutputStream(toFile));
if(map !=null){
Object key = null;
Object value = null;
// 使用迭代器遍历Map的键,根据键取值
Iterator it = map.keySet().iterator();
while (it.hasNext()){
key = it.next();
value = map.get(key);
System.out.println("key is :"+key);
System.out.println("vlaue is :"+value);
//能写各种基本类型数据
writer.print(value+" ");
writer.print(key+" ");
//换行
writer.println();
//写入文件
writer.flush();
}
System.out.println("写文件"+file.getAbsolutePath()+"成功!");
System.out.println("---------------------------写文件结束--------------------------");
}
}catch(IOException e){
e.printStackTrace();
}finally{
if(reader != null){
try{
reader.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
if(writer !=null){
writer.close();
}
}
}
public static void main(String[] args){
String fileName = "D:/test.txt";
String toFileName = "D:/test1.txt";
fileSort.read_writeFile(fileName, toFileName);
}
}
----------------自定义比较器--------------------------------------
import java.util.Comparator;
/**
* 整数比较器,将整数按降序排列
*/
class MyIntComparator implements Comparator{
/**
* o1比o2大,返回-1;o1比o2小,返回1。
*/
public int compare(Object o1, Object o2) {
int i1 = ((Integer)o1).intValue();
int i2 = ((Integer)o2).intValue();
if (i1 < i2){
return 1;
}
if (i1 > i2){
return -1;
}
return 0;
}
}
分享到:
相关推荐
【标题解析】 "华为笔试题目--程序设计类C/C++"这个标题表明这是一组与华为公司招聘笔试相关的程序设计题目,主要针对C和...同时,了解软件工程的基本原理,如版本控制(Git)、代码审查、测试等,也会对面试有所帮助。
本文将围绕“JAVA编程题”这一主题,深入探讨在笔试中可能出现的相关知识点,帮助备考者做好充分准备。 首先,人民币金额数字转换成大写的函数是一个常见的编程挑战。在金融领域,确保数据的准确性和规范性至关重要...
### IT知识点汇总 #### 数据分析与编程基础 1. **数据之间的关系和特征**: - 数据之间的关系指的是数据集内部各个变量之间的关联性。这种关联性可以通过统计方法(如相关系数)或可视化手段...希望对你有所帮助。
虽不直接影响得分,但性格测试的结果会影响面试官对求职者是否适合银行工作的判断。这部分试题通常采用多选题形式,通过求职者对不同情境下的反应来评估其团队协作能力、沟通能力、应变能力和稳定性等。 复习这些...
【描述】:“北京华辰泽众信息科技有限公司Java笔试题”描述简洁,表明这是一个针对求职者进行的技术能力测试,主要考察求职者对Java技术的掌握程度和实际应用能力。此类笔试通常包含各种难度层次的问题,旨在全面...
【360 Java 研发笔试题】是针对应聘360公司Java研发岗位的求职者设计的一系列测试题目,旨在评估候选人在Java编程语言、软件工程、数据结构、算法以及系统设计等方面的能力。这类笔试题通常涵盖广泛的知识点,以确保...
本资料包"IT行业面试笔试题目与JAVA面试题.rar"显然是一份综合性的资源,包含了C++、C、Java等编程语言的面试和笔试题目,特别聚焦于JAVA面试题,旨在帮助求职者准备各大公司的招聘过程。 1. **JAVA基础** - 类与...
以下是一些关键的Java知识点,这些内容通常会在面试题中出现,并对寻找工作的求职者有所帮助。 1. **Java基础** - 类与对象:理解面向对象编程的基本概念,包括类的定义、对象的创建和访问修饰符。 - 继承、封装...
以上知识点在“C#笔试题.docx”和“C#上机试题.docx”中可能会有所涉及,建议应聘者们深入理解和掌握,以便在面试和笔试中表现出色。同时,持续学习和实践C#新特性和.NET生态系统的发展,对于提升个人技能和职业发展...
### HiAll名企英文面试、笔试、网申真题百题串讲 #### 知识点概述 本文件提供了一套全面的英文求职培训指南,旨在帮助学生和职场新人掌握有效的求职技能,尤其是在英语环境中。培训内容覆盖了网申、填表、开放式...
根据提供的文件信息,我们可以梳理出一系列与Java编程相关的知识点,这些知识点主要涵盖了Java语言的基础、面向...以上是对文件中提到的一些知识点的详细解释,希望对准备参加宅急送研发中心Java笔试的求职者有所帮助。
这份"java面试笔试大全"集合了大量Java面试题,旨在帮助求职者全面准备面试,涵盖基础到高级的各种知识点。以下将根据提供的信息,详细阐述Java面试中可能涉及的一些核心知识点。 1. **Java基础** - 类与对象:...
本次提供的资料为一份包含了110道Python面试题及答案的PDF文档,涉及到的知识点包括Python语言基础、数据类型、函数使用、类与对象、异常处理、模块和包的使用、数据结构、文件操作、Linux命令、正则表达式、图形...
《中国建设银行2013年校园招聘完整试题真题及答案解析》是针对有志于进入银行业,尤其是中国建设银行的求职者们的一份重要参考资料。这份文档详细记录了2013年中国建设银行在校园招聘过程中所使用的试题,包括了笔试...
Java笔试宝典是一份全面的资源,旨在帮助Java开发者准备各类技术面试和笔试。这份宝典包含了大量的题目,涵盖了Java编程语言的各个方面,包括但不限于基础语法、面向对象设计、数据结构与算法、集合框架、多线程、...
- **HR官方答疑**:通过在线形式进行的答疑,帮助求职者更好地了解招聘细节和准备策略。 #### 四、爱立信职业发展与薪酬待遇 - **薪酬体系**:提供具有竞争力的薪资待遇,具体细节根据职位和地区有所不同。 - **...
### 华为2013校园招聘求职宝典 #### 第一篇:企业背景 ##### 1.1 企业概况 **1.1.1 企业名片** - **公司全称**:华为技术有限公司 ...希望本宝典能够帮助大家更好地准备华为的校园招聘,成功迈出职业生涯的第一步。
本文对 Java 面试题进行了回顾,涵盖了 Java 语言基础、Web 开发、数据库、缓存、JavaScript 和 Linux 等多方面的内容,旨在帮助读者备战 Java 面试。 Java 语言基础 1. Java 中的 try-catch-finally 语句执行顺序...
宝钢英语等级考试是一种针对宝钢员工或相关人员设置的英语水平测试,主要测试应试者的英语听说读写译等综合语言能力。该考试分为不同的级别,其中提到的是英语一级笔试,它包含五个部分:听力理解、阅读理解、翻译、...
### 主函数与文件读写操作 主函数`main`中,首先通过`scanf`函数接收用户输入的两个整数m和n,然后调用`num`函数获取结果,并输出。此外,还提供了一个`readwriteDat`函数用于从文件中读取测试数据并调用`num`函数...