質問編集履歴

1

画像添付、ソースコードを一つ添付

2019/10/16 15:21

投稿

zeuma
zeuma

スコア6

test CHANGED
File without changes
test CHANGED
@@ -1 +1,177 @@
1
+ ![アクティビティモニタ](09eeab9af76c99fd18080bb2d0f37e6f.png)
2
+
1
3
  eclipseを用いてJavaのプログラムを組んでいるのですが、eclipseを終了したあとも、Macのアクティビティモニタを見るとプロセス名[java]が5つほどあり、それぞれ900MBほどメモリを消費しているのですが、これらを解消するにはどうすればよいでしょうか。
4
+
5
+
6
+
7
+ 以下のコードを作り始めてから調子が悪いです。
8
+
9
+ ```Java
10
+
11
+ import java.io.BufferedReader;
12
+
13
+ import java.io.BufferedWriter;
14
+
15
+ import java.io.File;
16
+
17
+ import java.io.FileReader;
18
+
19
+ import java.io.FileWriter;
20
+
21
+ import java.io.IOException;
22
+
23
+ import java.io.PrintWriter;
24
+
25
+
26
+
27
+ public class Main {
28
+
29
+
30
+
31
+ public static void main(String[] args) {
32
+
33
+ try {
34
+
35
+ // ファイルのパスを指定する
36
+
37
+ File file = new File("/Users/kishishitakoki/Downloads/test.sql");
38
+
39
+ File file2 = new File("/Users/kishishitakoki/Downloads/test2.sql");
40
+
41
+ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file2)));
42
+
43
+ // ファイルが存在しない場合に例外が発生するので確認する
44
+
45
+ if (!file.exists()) {
46
+
47
+ System.out.print("ファイルが存在しません");
48
+
49
+ return;
50
+
51
+ }
52
+
53
+
54
+
55
+ // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する
56
+
57
+ FileReader fileReader = new FileReader(file);
58
+
59
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
60
+
61
+ String data;
62
+
63
+
64
+
65
+
66
+
67
+ while ((data = bufferedReader.readLine()) != null) { //1行ずつ読み込む
68
+
69
+ if(data.contains("市")) { //その行に”市”が入っていたら
70
+
71
+ String[] words = data.split(",", 0); //その行を分割
72
+
73
+ String[] newWords = words;
74
+
75
+ String ans = "";
76
+
77
+ data = "";
78
+
79
+ for(int i = 0; i < words.length; i++) { //行を分割した回数だけ
80
+
81
+ if(words[i].contains("市")) {
82
+
83
+ newWords[i] = words[i].substring(0, 2) + "1" + words[i].substring(3);
84
+
85
+ for(int k = 1; k < newWords[i].length(); k++) {
86
+
87
+ if(2 * k < newWords[i].length() ) {
88
+
89
+ newWords[i] = newWords[i].substring(0,2 * k) + random() + newWords[i].substring(2 * k + 1);
90
+
91
+ }
92
+
93
+ }
94
+
95
+ newWords[i] = newWords[i].substring(0,newWords[i].length() - 1) + "'),";
96
+
97
+ }
98
+
99
+ data = data + newWords[i];
100
+
101
+ data = data.replace("''", "'");
102
+
103
+ }
104
+
105
+ System.out.println(data);
106
+
107
+ }else {
108
+
109
+ System.out.println(data);
110
+
111
+ }
112
+
113
+ pw.println(data);
114
+
115
+ }
116
+
117
+
118
+
119
+ // 最後にファイルを閉じてリソースを開放する
120
+
121
+ bufferedReader.close();
122
+
123
+
124
+
125
+ } catch (IOException e) {
126
+
127
+ e.printStackTrace();
128
+
129
+ }
130
+
131
+ }
132
+
133
+
134
+
135
+
136
+
137
+ private static String random() { //ランダムな文字を生成
138
+
139
+ String[] Char = {
140
+
141
+ "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1",
142
+
143
+ "2","3","4","5","6","7","8","9"
144
+
145
+ };
146
+
147
+ String re = Char[(int) (Math.random() * 36)];
148
+
149
+ return re;
150
+
151
+
152
+
153
+ }
154
+
155
+
156
+
157
+ private static boolean checkBeforeWritefile(File file){
158
+
159
+ if (file.exists()){
160
+
161
+ if (file.isFile() && file.canWrite()){
162
+
163
+ return true;
164
+
165
+ }
166
+
167
+ }
168
+
169
+
170
+
171
+ return false;
172
+
173
+ }
174
+
175
+ }
176
+
177
+ ```