OSDN Git Service

1396003cb27cb0cef24ec36a8b79d5e22519d0fa
[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 boolean write() {
38                 StringBuilder builder = new StringBuilder(new SimpleDateFormat(FILE_NAME_PATTERN).format(new Date()));
39                 builder.append(FILE_EXTENSION);
40                 try {
41                         ObjectOutputStream outStream = new ObjectOutputStream(new FileOutputStream(builder.toString()));
42                         outStream.writeObject(data);
43                         outStream.close();
44                         return true;
45                 } catch (IOException e) {
46                         logger.error("Exception while output objects", e);
47                         return false;
48                 }
49         }
50         
51         public static OutputDataStructure read(String fileName) {
52                 FileInputStream fileInputStream;
53                 try {
54                         fileInputStream = new FileInputStream(fileName);
55                         ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
56                 OutputDataStructure structure = (OutputDataStructure) objectInputStream.readObject();
57                 objectInputStream.close();
58                 return structure;
59                 } catch (IOException | ClassNotFoundException e) {
60                         logger.error("Exception while reading objects", e);
61                         return null;
62                 }
63         }
64
65 }