質問編集履歴

5

文法の修正

2019/09/17 06:27

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -1,20 +1,10 @@
1
- outputTextFileメソッドにて以下の処理を行おうとしているのですがこれであっているのでしょうか。
2
-
3
-
4
-
5
-   Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
6
-
7
-   Ⅱ. 出力するテキストファイルの文字コードは「SJIS」とし、項目ごと改行を行う。
1
+ 2つ目コードで、文字コードを指定たものを作ってみたのですが実行時
2
+
8
-
3
+ Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
9
-  
10
-
4
+
11
-  ◇引数:(Map<String,String>、String) ※引数の命名は任意
5
+ at practice.Number.main(Number.java:20)
12
-
6
+
13
-  ◇戻り値:なし
7
+ と出てしまいます、ぜでょうか?
14
-
15
-
16
-
17
-
18
8
 
19
9
  ```Java
20
10
 

4

文法の修正

2019/09/17 06:26

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -169,3 +169,151 @@
169
169
 
170
170
 
171
171
  ```
172
+
173
+ ```java
174
+
175
+ import java.io.BufferedWriter;
176
+
177
+ import java.io.File;
178
+
179
+ import java.io.FileNotFoundException;
180
+
181
+ import java.io.FileOutputStream;
182
+
183
+ import java.io.OutputStreamWriter;
184
+
185
+ import java.io.PrintWriter;
186
+
187
+ import java.io.UnsupportedEncodingException;
188
+
189
+ import java.util.HashMap;
190
+
191
+ import java.util.Map;
192
+
193
+ import java.util.Scanner;
194
+
195
+
196
+
197
+ public class Number {
198
+
199
+
200
+
201
+ public static void main(String[] args) {
202
+
203
+ // TODO 自動生成されたメソッド・スタブ
204
+
205
+ Map<String, String> map = getProfileInfo();
206
+
207
+
208
+
209
+ outputTextFile(map, args[0]);
210
+
211
+
212
+
213
+ System.out.println("処理が終了しました。");
214
+
215
+
216
+
217
+ }
218
+
219
+
220
+
221
+ public static Map<String, String> getProfileInfo() {
222
+
223
+ Scanner sc = new Scanner(System.in);
224
+
225
+
226
+
227
+ System.out.println("名前を入力してください");
228
+
229
+ String a = sc.next();
230
+
231
+
232
+
233
+ System.out.println("目標資格を入力してください");
234
+
235
+ String b = sc.next();
236
+
237
+
238
+
239
+ System.out.println("出身校を入力してください");
240
+
241
+ String c = sc.next();
242
+
243
+
244
+
245
+ System.out.println("メッセージを入力しください");
246
+
247
+ String d = sc.next();
248
+
249
+
250
+
251
+ sc.close();
252
+
253
+
254
+
255
+ HashMap<String, String> map = new HashMap<String, String>();
256
+
257
+
258
+
259
+ map.put("name", a);
260
+
261
+ map.put("qualification", b);
262
+
263
+ map.put("school", c);
264
+
265
+ map.put("message", d);
266
+
267
+
268
+
269
+ return map;
270
+
271
+ }
272
+
273
+
274
+
275
+ public static void outputTextFile(Map<String, String> pro1, String dir) {
276
+
277
+
278
+
279
+ File file = new File(dir);
280
+
281
+
282
+
283
+ try {
284
+
285
+ PrintWriter p_writer = new PrintWriter(
286
+
287
+ new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Shift-JIS")));
288
+
289
+ p_writer.println(pro1.get("name"));
290
+
291
+ p_writer.println(pro1.get("qualification"));
292
+
293
+ p_writer.println(pro1.get("school"));
294
+
295
+ p_writer.println(pro1.get("message"));
296
+
297
+ p_writer.close();
298
+
299
+ System.out.println("テキストファイルの作成に成功しました");
300
+
301
+ } catch (UnsupportedEncodingException | FileNotFoundException e) {
302
+
303
+ // TODO 自動生成された catch ブロック
304
+
305
+ ((Throwable) e).printStackTrace();
306
+
307
+ }
308
+
309
+
310
+
311
+ }
312
+
313
+
314
+
315
+ }
316
+
317
+
318
+
319
+ ```

3

文法の修正

2019/09/17 06:23

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -1,11 +1,3 @@
1
- filewriter.write(pro1);の文でエラーが出てしまいます、なぜでしょうか。
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
1
  outputTextFileメソッドにて以下の処理を行おうとしているのですがこれであっているのでしょうか。
10
2
 
11
3
 
@@ -100,13 +92,13 @@
100
92
 
101
93
 
102
94
 
103
- map.put("key1", a);
95
+ map.put("name", a);
104
96
 
105
- map.put("key2", b);
97
+ map.put("qualification", b);
106
98
 
107
- map.put("key3", c);
99
+ map.put("school", c);
108
100
 
109
- map.put("key4", d);
101
+ map.put("message", d);
110
102
 
111
103
 
112
104
 
@@ -122,7 +114,7 @@
122
114
 
123
115
  File file = new File(dir);
124
116
 
125
-
117
+
126
118
 
127
119
  FileWriter filewriter = null;
128
120
 
@@ -142,11 +134,17 @@
142
134
 
143
135
  try {
144
136
 
145
- filewriter.write(pro1);
137
+ filewriter.write(pro1.get("name"));
138
+
139
+ filewriter.write(pro1.get("qualification"));
140
+
141
+ filewriter.write(pro1.get("school"));
142
+
143
+ filewriter.write(pro1.get("message"));
146
144
 
147
145
  filewriter.close();
148
146
 
149
- System.out.println("テキストファイルの作成に成功しました");
147
+ System.out.println("テキストファイルの作成に成功しました");
150
148
 
151
149
  } catch (IOException e) {
152
150
 
@@ -168,4 +166,6 @@
168
166
 
169
167
 
170
168
 
169
+
170
+
171
171
  ```

2

文法の修正

2019/09/17 05:17

投稿

javarou
javarou

スコア3

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,11 @@
1
+ filewriter.write(pro1);の文でエラーが出てしまいます、なぜでしょうか。
2
+
3
+
4
+
5
+
6
+
7
+
8
+
1
9
  outputTextFileメソッドにて以下の処理を行おうとしているのですがこれであっているのでしょうか。
2
10
 
3
11
 
@@ -112,7 +120,9 @@
112
120
 
113
121
 
114
122
 
115
- File file = new File("c:¥¥tmp¥¥test.txt");
123
+ File file = new File(dir);
124
+
125
+
116
126
 
117
127
  FileWriter filewriter = null;
118
128
 
@@ -132,7 +142,11 @@
132
142
 
133
143
  try {
134
144
 
135
- filewriter.write("Profile.txt");
145
+ filewriter.write(pro1);
146
+
147
+ filewriter.close();
148
+
149
+ System.out.println("テキストファイルの作成に成功しました");
136
150
 
137
151
  } catch (IOException e) {
138
152
 

1

文法の修正

2019/09/17 04:38

投稿

javarou
javarou

スコア3

test CHANGED
@@ -1 +1 @@
1
- Java ファイルの出力と呼び出し return文
1
+ Java ファイルの出力ができません。
test CHANGED
@@ -1,16 +1,16 @@
1
- *分からないこと*
1
+ outputTextFileメソッドにて以下の処理を行おうとしてるのですがれであっているのでしょうか。
2
2
 
3
- 以下の問題に、
4
3
 
5
- 「プロフィール情報」と、「ファイルの出力先ディレクトリ」を指定してとあるのですが、その意味が分かりません。
6
4
 
7
- 現在 getProfileInfo()
5
+   Ⅰ. 引数として受け取った「プロフィール情報」を引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
8
6
 
9
- 戻り値を本来、Map<String,String>でやるべきころ配列でやってしまっています
7
+   Ⅱ. 出力するテキストファイル文字コードは「SJISし、項目ごとに改行行う
10
8
 
11
- また、outputTextFile()
9
+  
12
10
 
13
- 中に書くべきことがサッパリわかりません。
11
+  ◇引数:(Map<String,String>、String) ※引数命名は任意
12
+
13
+  ◇戻り値:なし
14
14
 
15
15
 
16
16
 
@@ -18,9 +18,17 @@
18
18
 
19
19
  ```Java
20
20
 
21
+
22
+
21
23
  import java.io.File;
22
24
 
25
+ import java.io.FileWriter;
26
+
27
+ import java.io.IOException;
28
+
23
29
  import java.util.HashMap;
30
+
31
+ import java.util.Map;
24
32
 
25
33
  import java.util.Scanner;
26
34
 
@@ -34,21 +42,11 @@
34
42
 
35
43
  // TODO 自動生成されたメソッド・スタブ
36
44
 
37
- getProfileInfo();
45
+ Map<String, String> map = getProfileInfo();
38
46
 
39
47
 
40
48
 
41
- File dir = new File("C:\tmp");
42
-
43
- dir.mkdir();
44
-
45
-
46
-
47
- File file = new File("c:¥¥tmp");
48
-
49
-
50
-
51
- outputTextFile();
49
+ outputTextFile(map, args[0]);
52
50
 
53
51
 
54
52
 
@@ -60,7 +58,7 @@
60
58
 
61
59
 
62
60
 
63
- public static String[] getProfileInfo() {
61
+ public static Map<String, String> getProfileInfo() {
64
62
 
65
63
  Scanner sc = new Scanner(System.in);
66
64
 
@@ -104,25 +102,45 @@
104
102
 
105
103
 
106
104
 
107
- String[] array = new String[4];
108
-
109
- array[0] = a;
110
-
111
- array[1] = b;
112
-
113
- array[2] = c;
114
-
115
- array[3] = d;
116
-
117
-
118
-
119
- return array;
105
+ return map;
120
106
 
121
107
  }
122
108
 
123
109
 
124
110
 
125
- public static void outputTextFile() {
111
+ public static void outputTextFile(Map<String, String> pro1, String dir) {
112
+
113
+
114
+
115
+ File file = new File("c:¥¥tmp¥¥test.txt");
116
+
117
+ FileWriter filewriter = null;
118
+
119
+ try {
120
+
121
+ filewriter = new FileWriter(file);
122
+
123
+ } catch (IOException e) {
124
+
125
+ // TODO 自動生成された catch ブロック
126
+
127
+ e.printStackTrace();
128
+
129
+ }
130
+
131
+
132
+
133
+ try {
134
+
135
+ filewriter.write("Profile.txt");
136
+
137
+ } catch (IOException e) {
138
+
139
+ // TODO 自動生成された catch ブロック
140
+
141
+ e.printStackTrace();
142
+
143
+ }
126
144
 
127
145
 
128
146
 
@@ -137,69 +155,3 @@
137
155
 
138
156
 
139
157
  ```
140
-
141
-
142
-
143
-
144
-
145
- *取り組んでいる問題*
146
-
147
- main
148
-
149
-  実行したときに呼び出されるメソッド。以下の処理を行う。
150
-
151
-   Ⅰ. getProfileInfo()を呼び出し、入力されたプロフィール情報のMapを取得する。
152
-
153
-   Ⅱ. Ⅰ.で取得した「プロフィール情報」と「ファイルの出力先ディレクトリ」を指定して、outputTextFile()を呼び出す。
154
-
155
-   ※outputTextFileの呼び出し時に指定する「ファイルの出力先ディレクトリ」は、実行時に(String[] args)へ設定してあるものとする。
156
-
157
-   Ⅲ. すべての処理が終了後、メッセージ「処理が終了しました。」を標準出力する。
158
-
159
- getProfileInfo()
160
-
161
-  以下の処理を行う。
162
-
163
-   Ⅰ. 項目「名前」「目標資格」「出身校」「メッセージ」を、順番にキーボードから入力させる。
164
-
165
-   Ⅱ. Ⅰ.で入力された値をMapに格納して返却する。
166
-
167
-  
168
-
169
-  ◇引数:なし
170
-
171
-  ◇戻り値:Map<String,String>
172
-
173
-  
174
-
175
- getProfileInfo()サンプル
176
-
177
- 名前を入力してください。
178
-
179
- //>入力
180
-
181
- 目標資格を入力してください。
182
-
183
- //>入力
184
-
185
- 出身校を入力してください。
186
-
187
- //>入力
188
-
189
- メッセージを入力してください。
190
-
191
- //>入力
192
-
193
- outputTextFile()
194
-
195
-  以下の処理を行う。
196
-
197
-   Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
198
-
199
-   Ⅱ. 出力するテキストファイルの文字コードは「SJIS」とし、項目ごとに改行を行う。
200
-
201
-  
202
-
203
-  ◇引数:(Map<String,String>、String) ※引数の命名は任意
204
-
205
-  ◇戻り値:なし