import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.*;
public class TaskOne {
private static DataInputStream dis=null;
private static DataOutputStream dos=null;
private static List<MrBean> list=new ArrayList<MrBean>();
/**读取二进制文件**/
public static void readBinaryStream(String fileName){
//System.out.println("123");
//int i=0;
//File file = new File(fileName);
try{
dis=new DataInputStream(new FileInputStream(new File(fileName)));
//System.out.println(dis.available());
if(dis!=null){
while(dis.available()>0){
//System.out.println("456");
//System.out.println(dis.available());
MrBean mrBean=new MrBean();
//System.out.print(dis.readInt()+" ");
mrBean.setTIME_STAMP(dis.readInt());
//System.out.print((int)dis.readChar()+" ");
mrBean.setTRX_ID((int)dis.readChar());
//System.out.print((int)dis.readChar()+" ");
mrBean.setLAC((int)dis.readChar());
//System.out.print((int)dis.readChar()+" ");
mrBean.setCI((int)dis.readChar());
//System.out.print((int)dis.readChar()+" ");
mrBean.setTEI((int)dis.readChar());
//System.out.print(dis.readByte()+" ");
mrBean.setVALUE_1(dis.readByte());
//System.out.print(dis.readByte()+" ");
mrBean.setVALUE_2(dis.readByte());
//System.out.print(dis.readByte()+" ");
mrBean.setVALUE_3(dis.readByte());
//System.out.print(dis.readByte()+" ");
mrBean.setVALUE_4(dis.readByte());
//System.out.print(dis.readInt()+" ");
mrBean.setCOUNTS(dis.readInt());
//System.out.println(dis.read(m_datapadding));
list.add(mrBean);
//System.out.println("");
/*i++;
if(i==100)
break;*/
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**写入二进制文件**/
public static void writeBinaryStream(String fileName,List<MrBean> list){
try{
dos=new DataOutputStream(new FileOutputStream(new File(fileName)));
if(dos!=null){
for(int i=0;i<list.size();i++){
dos.writeInt(list.get(i).getTIME_STAMP());
dos.writeChar(list.get(i).getTRX_ID());
dos.writeChar(list.get(i).getLAC());
dos.writeChar(list.get(i).getCI());
dos.writeChar(list.get(i).getTEI());
dos.writeByte(list.get(i).getVALUE_1());
dos.writeByte(list.get(i).getVALUE_2());
dos.writeByte(list.get(i).getVALUE_3());
dos.writeByte(list.get(i).getVALUE_4());
dos.writeInt(list.get(i).getCOUNTS());
//dos.write(m_datapadding);
}
dos.flush();
dos.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
String fileName = "E:/RLU_RLD.dat";
String outFileName = "E:/RLU_RLD_SORTED.DAT.dat";
TaskOne.readBinaryStream(fileName);
QuickSort.quickSortByList(list, 0, list.size()-1);
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i).getTIME_STAMP()+" "+list.get(i).getTRX_ID()+" "+list.get(i).getLAC()+" "+list.get(i).getCI()+" "+list.get(i).getTEI()+" "+list.get(i).getVALUE_1()+" "+list.get(i).getVALUE_2()+" "+list.get(i).getVALUE_3()+" "+list.get(i).getVALUE_4()+" "+list.get(i).getCOUNTS());
}
TaskOne.writeBinaryStream(outFileName, list);
}
}