集合倒序排序存入文件中并读取出来

先建立一个Person类:

package com.lanqiao.javatest;

import java.io.Serializable;
public class Person implements Comparable,Serializable{
private String name;
private int age;
public Person() {
super();
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
@Override
public int compareTo(Object o) {
Person input=(Person)o;
int res=age>input.age?-1:(age==input.age?0:1);
if(res==0){
res=name.compareTo(input.name);
}
return res;
}
}

建立一个测试类:

package com.lanqiao.javatest;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Array;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Test3 {
private static final List<Person> Person = null;
static File file=new File("File.txt");
static List<Person> list=new ArrayList<Person>();
@SuppressWarnings("unchecked")
public static void ru() throws IOException{//将数据写入集合中
Person[] person=new Person[5];
for(int i=0;i<5;i++){
person[0]=new Person("jlrt",23);
person[1]=new Person("jlr",54);
person[2]=new Person("jldasdas",90);
person[3]=new Person("jlds",12);
person[4]=new Person("jldas",14);
list.add(person[i]);
Collections.sort(list);
}
}
public static void writer() throws IOException{//集合中的数据写入文件
ObjectOutputStream oos=null;
try {
oos=new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(list);
oos.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(oos!=null){
oos.close();
}
}
}
@SuppressWarnings("unchecked")
public static ArrayList<Person> read() throws Exception{//从文件中将数据读取到集合中
ObjectInputStream ois=null;
ArrayList<Person> ll=null;
try {
ois=new ObjectInputStream(new FileInputStream(file));
ll=new ArrayList<Person>();
ll=(ArrayList<Person>)ois.readObject();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(ois!=null){
ois.close();
}
}
return ll;
}
public static void main(String[] args) throws Exception {
System.out.println("-------------------------------------------");
ru();
writer();
ArrayList<Person> ll=read();//建立一个集合承接read()方法中的数据
for(int i=0;i<ll.size();i++){
System.out.println(ll.get(i).toString());
}
System.out.println("-------------------------------------------");

}
}

另外还有建立以文件(名字为:File.txt);

时间: 2024-12-25 04:30:34

集合倒序排序存入文件中并读取出来的相关文章

iOS -- 对象归档(将对象存入文件中)

// 定义一个对象Person *p = [[Person alloc] init];p.name = @"jack";p.age = 20;p.height = 180.0;p.address = @"American";// 文件存放路径NSString *path = @"/Users/lianfu/Desktop/one.data";// 将对象存档[NSKeyedArchiver archiveRootObject:p toFile:p

从网络上下载省份城市名称并存入文件然后进行读取省份城市

//实现的功能是 从后台拿到城市的省份以及名称,然后保存在本地的沙盒中 在使用的时候再拿出来用. 步骤1 //向后台请求数据 //忽略缓存 [RequestTools postJSONWithUrl:G.YB_GetZoneList parameters:@{} success:^(id responseObject) { NSError *error = nil; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:respo

springMVC从上传的Excel文件中读取数据

示例:导入客户文件(Excle文件) 一.编辑customer.xlsx 二.编辑jsp(addCustomer3.jsp) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefi

RandomAccessFileDemo3~4 向文件中读写出一组字节的方法

RandomAccessFileDemo3  向文件中写出一组字节的方法 /** *    文件操作 --- RandomAccessFile * *    RandomAccessFile提供了一个可以向文件中写出一组字节的方法: *    void write(byte[] bytesArr) 将给定的字节数组中所有字节一次性写出 与该方法相似的还有一个常用方法: void write(byte[] bytesArr,int offset,int len) 该方法会根据当前指针所在位置处连续

python:用json把字典序列化到文件中

#写程序最好是dump一次和load一次,可以存好几个文件 import json info={'name':'Tom', 'age':'12', 'job':'work',} f=open('file1.txt','w') f.write(json.dumps(info)) f.close() 把字典存入文件中 info={'name':'Tom', 'age':'12', 'job':'work',} f=open('test.txt','w') f.write(str(info)) f.c

IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中

需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数据存在一个字符串中 C:把字符串转换成字符串数组 D:对字符串数组进行排序 E:数组转换成字符串 F:把字符串写入文件中 1 public static void main(String[] args) throws IOException { 2 // 读取文件中的数据 缓冲字符输入流 3 Buf

读取两文件,不同的内容存入另一个文件中

<?php /** * 从两个.csv 文件中读出数据 * 比较这两个文件不同的数据,并存入.csv 文件中 */ class Readfiledata { private function __construct() { } /** * 读文件并获取数据 */ private static function getdata($file) { $handle = fopen ( $file, 'r' ); $orderform = array (); $i=0; while ( false !=

Java 练习:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中

package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class IO_sort_content { public static void main(String[] args) { /* * 已知文件 a.txt 文件中的内容为"bcde

已知文件 a.txt 文件中的内容为“bcdeadferwplkou”, * 请编写程序读取该文件内容,并按照自然顺序排序后输出到 b.txt 文件中。 * 即 b.txt 中的文件内容应为“abcd…………..”这样的顺序。

import java.io.*;class SortChar{ private String str; private char arrayList[]; private BufferedReader br; //字符流 private File f; //读取的文件 SortChar( String s ) { f=new File( s ); } public void start() { if( inputData()==-1 ) { return; } //对字符数组进行冒泡排序 so