NiraParikh 7 yıl önce
ebeveyn
işleme
07d1155da7

+ 12
- 1
src/main/java/rocks/zipcode/AlphaCharDocument.java Dosyayı Görüntüle

@@ -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,18 @@ public class AlphaCharDocument extends Document {
12 14
 
13 15
     @Override
14 16
     public void write(String contentToBeWritten) {
17
+        if(isAlpha(contentToBeWritten)){
18
+            super.write(contentToBeWritten);
19
+        }
20
+        else
21
+            throw new IllegalArgumentException();
15 22
     }
16 23
 
17 24
     private Boolean isAlpha(String s) {
18
-        return null;
25
+
26
+        Pattern pattern = Pattern.compile("[a-z]", Pattern.CASE_INSENSITIVE);
27
+        Matcher matcher = pattern.matcher(s);
28
+        return matcher.find();
19 29
     }
20 30
 }
31
+

+ 71
- 5
src/main/java/rocks/zipcode/Document.java Dosyayı Görüntüle

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

+ 10
- 1
src/main/java/rocks/zipcode/NumericCharDocument.java Dosyayı Görüntüle

@@ -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,16 @@ 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
+
25
+        Pattern pattern = Pattern.compile("[0-9]");
26
+        Matcher matcher = pattern.matcher(s);
27
+        return matcher.find();
19 28
     }
20 29
 }

+ 11
- 1
src/main/java/rocks/zipcode/SpecialCharDocument.java Dosyayı Görüntüle

@@ -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,17 @@ 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();
21
+        }
15 22
     }
16 23
 
17 24
     private Boolean isSpecialCharacters(String s) {
18
-        return null;
25
+
26
+        Pattern p = Pattern.compile("[^0-9a-z]", Pattern.CASE_INSENSITIVE);
27
+        Matcher m = p.matcher(s);
28
+        return m.find();
19 29
     }
20 30
 }