teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

文法の修正

2019/09/17 06:27

投稿

javarou
javarou

スコア3

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

4

文法の修正

2019/09/17 06:26

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -83,4 +83,78 @@
83
83
 
84
84
 
85
85
 
86
+ ```
87
+ ```java
88
+ import java.io.BufferedWriter;
89
+ import java.io.File;
90
+ import java.io.FileNotFoundException;
91
+ import java.io.FileOutputStream;
92
+ import java.io.OutputStreamWriter;
93
+ import java.io.PrintWriter;
94
+ import java.io.UnsupportedEncodingException;
95
+ import java.util.HashMap;
96
+ import java.util.Map;
97
+ import java.util.Scanner;
98
+
99
+ public class Number {
100
+
101
+ public static void main(String[] args) {
102
+ // TODO 自動生成されたメソッド・スタブ
103
+ Map<String, String> map = getProfileInfo();
104
+
105
+ outputTextFile(map, args[0]);
106
+
107
+ System.out.println("処理が終了しました。");
108
+
109
+ }
110
+
111
+ public static Map<String, String> getProfileInfo() {
112
+ Scanner sc = new Scanner(System.in);
113
+
114
+ System.out.println("名前を入力してください");
115
+ String a = sc.next();
116
+
117
+ System.out.println("目標資格を入力してください");
118
+ String b = sc.next();
119
+
120
+ System.out.println("出身校を入力してください");
121
+ String c = sc.next();
122
+
123
+ System.out.println("メッセージを入力しください");
124
+ String d = sc.next();
125
+
126
+ sc.close();
127
+
128
+ HashMap<String, String> map = new HashMap<String, String>();
129
+
130
+ map.put("name", a);
131
+ map.put("qualification", b);
132
+ map.put("school", c);
133
+ map.put("message", d);
134
+
135
+ return map;
136
+ }
137
+
138
+ public static void outputTextFile(Map<String, String> pro1, String dir) {
139
+
140
+ File file = new File(dir);
141
+
142
+ try {
143
+ PrintWriter p_writer = new PrintWriter(
144
+ new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Shift-JIS")));
145
+ p_writer.println(pro1.get("name"));
146
+ p_writer.println(pro1.get("qualification"));
147
+ p_writer.println(pro1.get("school"));
148
+ p_writer.println(pro1.get("message"));
149
+ p_writer.close();
150
+ System.out.println("テキストファイルの作成に成功しました");
151
+ } catch (UnsupportedEncodingException | FileNotFoundException e) {
152
+ // TODO 自動生成された catch ブロック
153
+ ((Throwable) e).printStackTrace();
154
+ }
155
+
156
+ }
157
+
158
+ }
159
+
86
160
  ```

3

文法の修正

2019/09/17 06:23

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,3 @@
1
- filewriter.write(pro1);の文でエラーが出てしまいます、なぜでしょうか。
2
-
3
-
4
-
5
1
  outputTextFileメソッドにて以下の処理を行おうとしているのですがこれであっているのでしょうか。
6
2
 
7
3
    Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
@@ -49,10 +45,10 @@
49
45
 
50
46
  HashMap<String, String> map = new HashMap<String, String>();
51
47
 
52
- map.put("key1", a);
48
+ map.put("name", a);
53
- map.put("key2", b);
49
+ map.put("qualification", b);
54
- map.put("key3", c);
50
+ map.put("school", c);
55
- map.put("key4", d);
51
+ map.put("message", d);
56
52
 
57
53
  return map;
58
54
  }
@@ -60,7 +56,7 @@
60
56
  public static void outputTextFile(Map<String, String> pro1, String dir) {
61
57
 
62
58
  File file = new File(dir);
63
-
59
+
64
60
  FileWriter filewriter = null;
65
61
  try {
66
62
  filewriter = new FileWriter(file);
@@ -70,9 +66,12 @@
70
66
  }
71
67
 
72
68
  try {
73
- filewriter.write(pro1);
69
+ filewriter.write(pro1.get("name"));
70
+ filewriter.write(pro1.get("qualification"));
71
+ filewriter.write(pro1.get("school"));
72
+ filewriter.write(pro1.get("message"));
74
73
  filewriter.close();
75
- System.out.println("テキストファイルの作成に成功しました");
74
+ System.out.println("テキストファイルの作成に成功しました");
76
75
  } catch (IOException e) {
77
76
  // TODO 自動生成された catch ブロック
78
77
  e.printStackTrace();
@@ -83,4 +82,5 @@
83
82
  }
84
83
 
85
84
 
85
+
86
86
  ```

2

文法の修正

2019/09/17 05:17

投稿

javarou
javarou

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,7 @@
1
+ filewriter.write(pro1);の文でエラーが出てしまいます、なぜでしょうか。
2
+
3
+
4
+
1
5
  outputTextFileメソッドにて以下の処理を行おうとしているのですがこれであっているのでしょうか。
2
6
 
3
7
    Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
@@ -55,7 +59,8 @@
55
59
 
56
60
  public static void outputTextFile(Map<String, String> pro1, String dir) {
57
61
 
58
- File file = new File("c:¥¥tmp¥¥test.txt");
62
+ File file = new File(dir);
63
+
59
64
  FileWriter filewriter = null;
60
65
  try {
61
66
  filewriter = new FileWriter(file);
@@ -65,7 +70,9 @@
65
70
  }
66
71
 
67
72
  try {
68
- filewriter.write("Profile.txt");
73
+ filewriter.write(pro1);
74
+ filewriter.close();
75
+ System.out.println("テキストファイルの作成に成功しました");
69
76
  } catch (IOException e) {
70
77
  // TODO 自動生成された catch ブロック
71
78
  e.printStackTrace();

1

文法の修正

2019/09/17 04:38

投稿

javarou
javarou

スコア3

title CHANGED
@@ -1,1 +1,1 @@
1
- Java ファイルの出力と呼び出し return文
1
+ Java ファイルの出力ができません。
body CHANGED
@@ -1,35 +1,34 @@
1
- *分からないこと*
2
- 以下の問題に、
3
- 「プロフィール情報」と、「ファイル出力先ディレクトリ」指定してとあるのですが、そ意味が分りません
1
+ outputTextFileメソッドにて以下処理行おうとしてるのですがこれであっているでしょうか。
4
- 現在、 getProfileInfo()
5
- の戻り値を本来、Map<String,String>でやるべきところを配列でやってしまっています。
6
- また、outputTextFile()
7
- の中に書くべきことがサッパリわかりません。
8
2
 
3
+   Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
4
+   Ⅱ. 出力するテキストファイルの文字コードは「SJIS」とし、項目ごとに改行を行う。
5
+  
6
+  ◇引数:(Map<String,String>、String) ※引数の命名は任意
7
+  ◇戻り値:なし
9
8
 
9
+
10
10
  ```Java
11
+
11
12
  import java.io.File;
13
+ import java.io.FileWriter;
14
+ import java.io.IOException;
12
15
  import java.util.HashMap;
16
+ import java.util.Map;
13
17
  import java.util.Scanner;
14
18
 
15
19
  public class ProfileCreator {
16
20
 
17
21
  public static void main(String[] args) {
18
22
  // TODO 自動生成されたメソッド・スタブ
19
- getProfileInfo();
23
+ Map<String, String> map = getProfileInfo();
20
24
 
21
- File dir = new File("C:\tmp");
25
+ outputTextFile(map, args[0]);
22
- dir.mkdir();
23
26
 
24
- File file = new File("c:¥¥tmp");
25
-
26
- outputTextFile();
27
-
28
27
  System.out.println("処理が終了しました。");
29
28
 
30
29
  }
31
30
 
32
- public static String[] getProfileInfo() {
31
+ public static Map<String, String> getProfileInfo() {
33
32
  Scanner sc = new Scanner(System.in);
34
33
 
35
34
  System.out.println("名前を入力してください");
@@ -51,53 +50,30 @@
51
50
  map.put("key3", c);
52
51
  map.put("key4", d);
53
52
 
54
- String[] array = new String[4];
55
- array[0] = a;
56
- array[1] = b;
57
- array[2] = c;
58
- array[3] = d;
59
-
60
- return array;
53
+ return map;
61
54
  }
62
55
 
63
- public static void outputTextFile() {
56
+ public static void outputTextFile(Map<String, String> pro1, String dir) {
64
57
 
58
+ File file = new File("c:¥¥tmp¥¥test.txt");
59
+ FileWriter filewriter = null;
60
+ try {
61
+ filewriter = new FileWriter(file);
62
+ } catch (IOException e) {
63
+ // TODO 自動生成された catch ブロック
64
+ e.printStackTrace();
65
+ }
66
+
67
+ try {
68
+ filewriter.write("Profile.txt");
69
+ } catch (IOException e) {
70
+ // TODO 自動生成された catch ブロック
71
+ e.printStackTrace();
72
+ }
73
+
65
74
  }
66
75
 
67
76
  }
68
77
 
69
78
 
70
- ```
79
+ ```
71
-
72
-
73
- *取り組んでいる問題*
74
- main
75
-  実行したときに呼び出されるメソッド。以下の処理を行う。
76
-   Ⅰ. getProfileInfo()を呼び出し、入力されたプロフィール情報のMapを取得する。
77
-   Ⅱ. Ⅰ.で取得した「プロフィール情報」と「ファイルの出力先ディレクトリ」を指定して、outputTextFile()を呼び出す。
78
-   ※outputTextFileの呼び出し時に指定する「ファイルの出力先ディレクトリ」は、実行時に(String[] args)へ設定してあるものとする。
79
-   Ⅲ. すべての処理が終了後、メッセージ「処理が終了しました。」を標準出力する。
80
- getProfileInfo()
81
-  以下の処理を行う。
82
-   Ⅰ. 項目「名前」「目標資格」「出身校」「メッセージ」を、順番にキーボードから入力させる。
83
-   Ⅱ. Ⅰ.で入力された値をMapに格納して返却する。
84
-  
85
-  ◇引数:なし
86
-  ◇戻り値:Map<String,String>
87
-  
88
- getProfileInfo()サンプル
89
- 名前を入力してください。
90
- //>入力
91
- 目標資格を入力してください。
92
- //>入力
93
- 出身校を入力してください。
94
- //>入力
95
- メッセージを入力してください。
96
- //>入力
97
- outputTextFile()
98
-  以下の処理を行う。
99
-   Ⅰ. 引数として受け取った「プロフィール情報」を、引数で渡された「出力先ディレクトリ」に「Profile.txt」という名前で出力する。
100
-   Ⅱ. 出力するテキストファイルの文字コードは「SJIS」とし、項目ごとに改行を行う。
101
-  
102
-  ◇引数:(Map<String,String>、String) ※引数の命名は任意
103
-  ◇戻り値:なし