`
huxiaoqing
  • 浏览: 5410 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

IO基础

阅读更多
文件Source中的数据格式为:
A:52
B:23
C:44
D:88
H:99
C:22
C:33
E:11
问题:
1、从Source中读取数据,并求和,打印到控制台,格式为:
A:52
B:23
C:99
D:88
H:99
E:11
2、排序打印到控制台
E:11
B:23
A:52
D:88
C:99
H:99

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Manager {
	private BufferedReader br;
	private BufferedWriter bw;
	private List<Student> students = new ArrayList<Student>();
	
	public void read(){
		try {
			br = new BufferedReader(new FileReader("Source"));
			String str = "";
			String [] arr;
			
			Map<String, Integer> aMap = new HashMap<String, Integer>();
			
			while ((str = br.readLine()) != null) {
				arr = str.split(":");
				
				if (aMap.containsKey(arr[Student.INDEX_0])) {// sum
					aMap.put(arr[Student.INDEX_0], aMap.get(arr[Student.INDEX_0]) + Integer.valueOf(arr[Student.INDEX_1]) );
				} else {
					aMap.put(arr[Student.INDEX_0], Integer.valueOf(arr[Student.INDEX_1]));
				}
			}
			
			for (String key : aMap.keySet()) {
				students.add(new Student(key, aMap.get(key)));
				System.out.println(new Student(key, aMap.get(key)).toString());
			}
			
			System.out.println("=====排序后======");
			this.sort();
			for (Student st : students) {
				System.out.println(st.toString());
			}
			br.close();// 关闭读取流
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// 排序
	private void sort() {
		Collections.sort(students);
	}
	
	public void write(){
		try {
			bw = new BufferedWriter(new FileWriter("SumSource"));
			for (Student st : students) {
				bw.write(st.toString(), 0, st.toString().length());
				bw.newLine();
			}
			bw.close();//关闭写入流
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	private static class Student implements Comparable<Student>{
		private String name;
		private Integer score;
		public static int INDEX_0 = 0;
		public static int INDEX_1 = 1;
		
		Student(String name, Integer sore){
			this.name = name;
			this.score = sore;
		}
		
		public Integer getScore(){
			return this.score;
		}
		// 重写
		public String toString(){
			return this.name + ":" + this.score ;
		}
		
		public int compareTo(Student st){
			return this.getScore() - st.getScore();
		}
	}
	
	public static void main(String [] args) {
		Manager m = new Manager();
		m.read();
		m.write();
	}
}


上面是我写的代码
但是还有个问题,如果是特别大的文件该怎么办呢?
比如:两个30G的文件,文件里面一行一个QQ号,现在需要把两个文件合并成一个文件,并且QQ号需要排序
分享到:
评论

相关推荐

    java IO 基础教程之一

    java IO 基础教程 讲述IO的基本原理

    基于S5P6818(A53八核)实习的智能识别系统完整源码+说明(涉及Linux文件IO基础、RFID射频识别等知识).zip

    【资源说明】 1、该资源内项目代码都是经过测试运行...基于S5P6818(A53八核)实习的智能识别系统源码+项目说明(涉及Linux文件IO基础、RFID射频识别技术、V4L2、多用户信息管理、多线程、多进程等多方面的知识).zip

    java中的IO的基础教学(1)

    本教程将深入讲解Java IO流的基础知识,包括其概念、分类、常用类以及如何在实际编程中应用。 一、IO流的概念 IO流是Java提供的一组接口和类,用于在不同数据源之间传输数据。数据源可以是文件、内存、网络连接等。...

    java IO基础

    以上就是Java IO基础的一些关键知识点,通过深入理解和熟练掌握这些内容,可以有效地处理程序与外部世界的交互,实现数据的高效读写和传输。提供的资料“java_javase201_day01.pdf”、“java_javase201_day02.pdf”...

    Java IO 基础操作(文件读写和移动)

    除了基础流,Java NIO(New IO)提供了一种更高效、非阻塞的IO模型。`java.nio`包下的`FileChannel`和`Files`类提供了更高级的文件操作,如映射内存到文件(MMap),以及异步文件操作。 例如,使用`Files`类移动...

    Java进阶教程之IO基础

    Java IO基础是Java编程中非常重要的一个领域,它涉及到如何在程序中进行数据的输入和输出操作。在Java中,IO系统比其他一些语言更为复杂,但也因此提供了更高的灵活性和控制性,允许开发者根据需求定制适合的输入...

    C/C++ IO基础 高级无头文件IO用法 C++

    C++的无头文件IO(2行代码)

    javaIo操作的基础代码

    在提供的压缩包文件"Io基础文档"中,可能包含了关于这些概念的详细说明、示例代码和实战指导,对于深入理解和掌握Java IO操作非常有帮助。学习和理解这些内容,将有助于开发者在处理数据输入输出时编写出高效、稳定...

    Java IO commons-io-2.5.jar

    一、Java IO 基础 Java IO 包含了许多类,如InputStream、OutputStream、Reader、Writer等,它们分别用于处理字节流和字符流。字节流适用于二进制数据,而字符流适用于文本数据。Java IO 还包括Filter流,可以用来...

    IO基础(字符流)

    IO基础(字符流) 文章目录IO基础(字符流)一、字符流二、常用的字符流类的继承关系三、字符流 FileReader 和 FileWriter四、字符缓冲流 BufferedReader 和 BufferedWriter五、 字符字节转换流(InputStreamReader/...

    IO知识总结

    在“IO原理.txt”这个文件名中,我们可以推测这是一个关于IO基础知识的文档,可能涵盖了上述的一些内容,包括流的概念、不同类型的流、缓冲技术、异常处理以及高级特性如NIO。 总的来说,IO知识是任何软件开发者都...

    Java IO 工具类大全

    一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream和OutputStream家族,字符流则包括Reader和Writer家族。这些基类都有许多子类...

    io学习笔记

    ### IO基础概念 在计算机科学领域中,**IO**(Input/Output)指的是输入和输出操作。它是程序与外部世界交互的一种方式。IO操作涉及到数据读取、写入以及处理等过程。对于编程而言,掌握IO是非常重要的,因为几乎所有...

    build.teztools.io:使用针对 teztools.io 基础设施构建的脚本和工具构建区块链驱动的应用程序

    使用针对 teztools.io 基础设施构建的脚本和工具构建区块链驱动的应用程序 API 端点 基础 URI: : 目前不需要 api 密钥。 TOKENADDRESS_TOKENID 还是 TOKENADDRESS? TOKENADDRESS = FA1.2 令牌和令牌 ID 为 0 ...

    基于Factory IO的PLC虚拟仿真控制系统研究.pdf

    文章的研究成果表明,构建在Factory IO基础上的PLC虚拟仿真实验平台,能够为学生提供丰富的虚拟控制对象,实现控制程序的调试和仿真运行,并且可以全面地锻炼学生的PLC综合应用能力。这种方式有效地解决了传统教学中...

    java io基础

    01_IO初步_java基础_www.gougu.net_文件流

    Java学习之IO总结及mina和netty

    **Java IO基础** Java IO库提供了一系列类和接口,用于处理数据的读写操作。这包括文件I/O、流I/O、对象序列化以及网络通信等。在Java中,I/O操作主要分为字节流和字符流,它们分别处理字节数据和字符数据。字节流...

Global site tag (gtag.js) - Google Analytics