OSDN Git Service

feat: add IOButton
[delesterandomselector/DelesteRandomSelector.git] / src / com / ranfa / lib / io / FileIO.java
1 package com.ranfa.lib.io;
2
3 import java.io.FileInputStream;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.ObjectInputStream;
7 import java.io.ObjectOutputStream;
8 import java.text.SimpleDateFormat;
9 import java.util.Date;
10
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
13
14 public class FileIO {
15         
16         private static Logger logger = LoggerFactory.getLogger(FileIO.class);
17         
18         // constants
19         private static final String FILE_NAME_PATTERN = "YYYY-MM-dd-HH-mm-ss";
20         private static final String FILE_EXTENSION = ".drs";
21         
22         // fields
23         /**
24          * songname
25          * level
26          * difficulty
27          * attribute
28          * score
29          */
30         private OutputDataStructure data;
31         
32         
33         public FileIO(OutputDataStructure data) {
34                 this.data = data;
35         }
36         
37         public void write() throws IOException {
38                 StringBuilder builder = new StringBuilder(new SimpleDateFormat(FILE_NAME_PATTERN).format(new Date()));
39                 builder.append(FILE_EXTENSION);
40                         ObjectOutputStream outStream = new ObjectOutputStream(new FileOutputStream(builder.toString()));
41                         outStream.writeObject(data);
42                         outStream.close();
43         }
44         
45         public static OutputDataStructure read(String fileName) {
46                 FileInputStream fileInputStream;
47                 try {
48                         fileInputStream = new FileInputStream(fileName);
49                         ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
50                 OutputDataStructure structure = (OutputDataStructure) objectInputStream.readObject();
51                 objectInputStream.close();
52                 return structure;
53                 } catch (IOException | ClassNotFoundException e) {
54                         logger.error("Exception while reading objects", e);
55                         return null;
56                 }
57         }
58
59 }