如何将文本文件中数组列表的每个索引保存为java中的新行



我正试图将列表的每个索引保存为以下java格式的文本文件中的新行,并将其读取为两个单独的数组列表以备以后使用。我已经完成了保存部分,现在我想把它读回两个单独的列表

保存格式化

类保存列表

public class SaveLists{
private  List<Integer> First= new ArrayList<>();
private  List<Integer> second= new ArrayList<>();

public void save(List l) throws IOException{
try{ 
File f = new File ("E:\Sample.txt");
if (!f.exists()) {
f.createNewFile();
}
FileWriter fw = new FileWriter(f.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
for(Object s : l) {
bw.write(s + System.getProperty("line.separator")); 
}
bw.write(System.getProperty("line.separator")); 
bw.close();
}catch(FileNotFoundException e){System.out.println("error");}
}
public void ReadFromText(){
//Read from Text file and save in both lists
}
}

主类:

public static void main(String[] args) {
temp t = new temp();
t.First.add(1);
t.First.add(2);
t.First.add(3);

t.second.add(6);
t.second.add(5);
t.second.add(4);

t.save(t.First);
t.save(t.second);
//        t.ReadFromText();
}

由于两个保存操作都在同一个线程上,因此行将以同步方式写入文件。因此,在读取文件中的所有行之后,我们可以根据输入列表的大小来分割行,即第一组值将由"第一"列表插入。

public void ReadFromText() {
// Read from Text file and save in both lists
List<Integer> output1 = new ArrayList<>();
List<Integer> output2 = new ArrayList<>();
try {
Path path = Path.of("D:\Sample.txt");
List<String> inputList = Files.lines(path).collect(Collectors.toList());
for (int i = 0; i < inputList.size(); i++) {
String s = inputList.get(i);
if (!s.isEmpty()) {
if (i < First.size()) {
output1.add(Integer.valueOf(s));
} else {
output2.add(Integer.valueOf(s));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

最新更新