thulasi 7 лет назад
Родитель
Сommit
3652a82f1e

+ 18
- 1
src/main/java/rocks/zipcode/AlphaCharDocument.java Просмотреть файл

@@ -1,6 +1,10 @@
1 1
 package rocks.zipcode;
2 2
 
3
+import java.io.BufferedWriter;
4
+import java.io.FileWriter;
3 5
 import java.io.IOException;
6
+import java.util.regex.Matcher;
7
+import java.util.regex.Pattern;
4 8
 
5 9
 /**
6 10
  * @author leon on 16/11/2018.
@@ -12,9 +16,22 @@ public class AlphaCharDocument extends Document {
12 16
 
13 17
     @Override
14 18
     public void write(String contentToBeWritten) {
19
+       if(isAlpha(contentToBeWritten)){
20
+           super.write(contentToBeWritten);
21
+       }
22
+       else
23
+           throw new IllegalArgumentException();
15 24
     }
16 25
 
17 26
     private Boolean isAlpha(String s) {
18
-        return null;
27
+      /*  boolean check = false;
28
+        for(int i = 0; i<s.length();i++){
29
+            if(Character.isLetter(s.charAt(i)))
30
+                check = true;
31
+        }
32
+        return check;*/
33
+        Pattern pattern = Pattern.compile("[a-z]", Pattern.CASE_INSENSITIVE);
34
+        Matcher matcher = pattern.matcher(s);
35
+        return matcher.find();
19 36
     }
20 37
 }

+ 72
- 5
src/main/java/rocks/zipcode/Document.java Просмотреть файл

@@ -1,7 +1,14 @@
1 1
 package rocks.zipcode;
2 2
 
3
+import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
4
+
3 5
 import java.io.*;
6
+import java.nio.charset.Charset;
7
+import java.nio.charset.StandardCharsets;
4 8
 import java.nio.file.Files;
9
+import java.nio.file.Path;
10
+import java.nio.file.Paths;
11
+import java.util.ArrayList;
5 12
 import java.util.Arrays;
6 13
 import java.util.List;
7 14
 
@@ -24,41 +31,101 @@ public class Document implements DocumentInterface {
24 31
 
25 32
     @Override
26 33
     public void write(String contentToBeWritten) {
34
+        try {
35
+            fileWriter.write(contentToBeWritten);
36
+            fileWriter.flush();
37
+        } catch (IOException e) {
38
+            e.printStackTrace();
39
+        }
27 40
     }
28 41
 
29 42
     @Override
30 43
     public void write(Integer lineNumber, String valueToBeWritten) {
44
+        try {
45
+            List<String> lines = Files.readAllLines(file.toPath());
46
+            lines.set(lineNumber, valueToBeWritten);
47
+            Files.write(file.toPath(), lines);
48
+        }catch (IOException io){
49
+            io.printStackTrace();
50
+        }
31 51
     }
32 52
 
33 53
     @Override
34 54
     public String read(Integer lineNumber) {
35
-        return null;
55
+        String line = null;
56
+        try {
57
+            line= Files.readAllLines(Paths.get(String.valueOf(file))).get(lineNumber);
58
+        } catch (IOException e) {
59
+            e.printStackTrace();
60
+        }
61
+        return line;
36 62
     }
37 63
 
38 64
     @Override
39 65
     public String read() {
40
-        return null;
66
+        StringBuilder stringBuilder = new StringBuilder();
67
+        try {
68
+            FileReader fileReader = new FileReader(file);
69
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
70
+            String line = "";
71
+            while ((line = bufferedReader.readLine()) != null)
72
+                stringBuilder.append(line + "\n");
73
+            stringBuilder.deleteCharAt(stringBuilder.length() - 1);
74
+        }catch (IOException exception){
75
+            exception.printStackTrace();
76
+        }
77
+        return stringBuilder.toString();
41 78
     }
42 79
 
43 80
     @Override
44 81
     public void replaceAll(String stringToReplace, String replacementString) {
82
+        try {
83
+            Path path = Paths.get(String.valueOf(file));
84
+            Charset charset = StandardCharsets.UTF_8;
85
+
86
+            String content = new String(Files.readAllBytes(path), charset);
87
+            content = content.replaceAll(stringToReplace, replacementString);
88
+            Files.write(path, content.getBytes(charset));
89
+        }catch (IOException io){
90
+            io.printStackTrace();
91
+        }
45 92
     }
46 93
 
47 94
     @Override
48 95
     public void overWrite(String content) {
96
+        try {
97
+            Writer fileWriter = new FileWriter(file, false);
98
+            fileWriter.write(content);
99
+            fileWriter.flush();
100
+            fileWriter.close();
101
+        }
102
+        catch (IOException io){
103
+            io.printStackTrace();
104
+        }
49 105
     }
50 106
 
51 107
     public List<String> toList() {
52
-        return null;
108
+        List<String> list = new ArrayList<>();
109
+        try {
110
+            FileReader fileReader = new FileReader(file);
111
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
112
+            String line = "";
113
+            while ((line = bufferedReader.readLine()) != null)
114
+                list.add(line);
115
+        }catch (IOException io){
116
+            io.printStackTrace();
117
+        }
118
+        return list;
53 119
     }
54 120
 
55 121
     @Override
56 122
     public File getFile() {
57
-        return null;
123
+        return this.file;
58 124
     }
59 125
 
60 126
     @Override
61 127
     public String toString() {
62
-        return null;
128
+        String content = read();
129
+        return file.toString() + "{" + content + "}";
63 130
     }
64 131
 }

+ 9
- 1
src/main/java/rocks/zipcode/NumericCharDocument.java Просмотреть файл

@@ -1,6 +1,8 @@
1 1
 package rocks.zipcode;
2 2
 
3 3
 import java.io.IOException;
4
+import java.util.regex.Matcher;
5
+import java.util.regex.Pattern;
4 6
 
5 7
 /**
6 8
  * @author leon on 16/11/2018.
@@ -12,9 +14,15 @@ public class NumericCharDocument extends Document {
12 14
 
13 15
     @Override
14 16
     public void write(String contentToBeWritten) {
17
+        if(isNumeric(contentToBeWritten))
18
+            super.write(contentToBeWritten);
19
+        else
20
+            throw new IllegalArgumentException();
15 21
     }
16 22
 
17 23
     private Boolean isNumeric(String s) {
18
-        return null;
24
+        Pattern pattern = Pattern.compile("[0-9]");
25
+        Matcher matcher = pattern.matcher(s);
26
+        return matcher.find();
19 27
     }
20 28
 }

+ 9
- 1
src/main/java/rocks/zipcode/SpecialCharDocument.java Просмотреть файл

@@ -1,6 +1,8 @@
1 1
 package rocks.zipcode;
2 2
 
3 3
 import java.io.IOException;
4
+import java.util.regex.Matcher;
5
+import java.util.regex.Pattern;
4 6
 
5 7
 /**
6 8
  * @author leon on 18/11/2018.
@@ -12,9 +14,15 @@ public class SpecialCharDocument extends Document {
12 14
 
13 15
     @Override
14 16
     public void write(String contentToBeWritten) {
17
+        if(isSpecialCharacters(contentToBeWritten))
18
+            super.write(contentToBeWritten);
19
+        else
20
+            throw new IllegalArgumentException();
15 21
     }
16 22
 
17 23
     private Boolean isSpecialCharacters(String s) {
18
-        return null;
24
+        Pattern pattern = Pattern.compile("[^0-9a-z]", Pattern.CASE_INSENSITIVE);
25
+        Matcher matcher = pattern.matcher(s);
26
+        return matcher.find();
19 27
     }
20 28
 }