
package com.hrsyabc.definecenter;
import com.alibaba.fastjson.JSON;
import java.io.File;
import java.io.RandomAccessFile;
import java.util.*;
import java.util.stream.Collectors;
public class FileImportTest {
public static void main(String[] args) {
Map<String,List<Double>> map = new HashMap<>();
List<String> list = readLastLineV1();
List<String> collect = list.stream()
.filter(item -> item != null && !item.equals("") && !item.equals(" "))
.map(String::trim)
.collect(Collectors.toList());
for (String strItem : collect) {
String[] s = strItem.split(" ");
String[] resArr = removeNullStringArray(s);
List<Double> doubleList = map.get(resArr[0]);
if (doubleList == null){
map.put(resArr[0],new ArrayList<String>(){{
add(Double.parseDouble(resArr[1]));
}});
}else {
doubleList.add(Double.parseDouble(resArr[1]));
}
}
System.out.println("s = " + JSON.toJSONString(map));
}
public static String[] removeNullStringArray(String[] arrayString) {
String[] list1 = new String[arrayString.length];
int j =0;
for (int i = 0; i < arrayString.length; i++) {
if (arrayString[i] != null && arrayString[i].length() != 0) {
list1[j] = (arrayString[i]);
j++;
}
}
return list1;
}
public static List<String> readLastLineV1() {
StringBuilder builder = new StringBuilder();
File file = new File("E:/a.json");
List<String> list = new ArrayList<>();
try (RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r")) {
long fileLastPointer = randomAccessFile.length() - 1;
for (long filePointer = 0; filePointer <= fileLastPointer; filePointer++) {
randomAccessFile.seek(filePointer);
int readByte = randomAccessFile.readByte();
if (0xA == readByte) {
if (filePointer == fileLastPointer) {
break;
}
list.add(builder.toString());
builder = new StringBuilder();
continue;
}
if (0xD == readByte) {
if (filePointer == fileLastPointer - 1) {
break;
}
list.add(builder.toString());
builder = new StringBuilder();
continue;
}
builder.append((char) readByte);
}
} catch (Exception e) {
System.out.println("e = " + e);
}
return list;
}
}