質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

811閲覧

ファイル読みこみをして表示しようとするとNullPointerExceptionが発生してしまう

kd3

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/07/05 08:29

###前提・実現したいこと
javaです。
ファイルから読み込んでファイルが読み込めているかの確認で表示するプログラムです。

###発生している問題・エラーメッセージ

null:Exception in thread "main" java.lang.NullPointerException at Kadai1.hyoujitxt(Kadai1Tester.java:68) at Kadai1Tester.main(Kadai1Tester.java:80)

###該当のソースコード

ここにご自身が実行したソースコードを書いてください import java.io.*; import java.util.*; class Kadai1 private LinkedList<Integer> adj[]; private int []SE=new int[1000000]; private LinkedList<String>queue1=new LinkedList<String>(); void addEdge(int v,int w){ adj[v].add(w); } void loadtxt(){ int lineCount = 0; String []X; Scanner sc; try{ sc = new Scanner(new File("graph001.txt")); String line=sc.nextLine(); while(line!=null){ lineCount++; line=sc.nextLine(); } X=new String[lineCount]; for(int i=0;i<lineCount;i++){ X[i]=sc.nextLine(); } } catch(Exception e){ return; } int i=0; int G=0; String[]Y=new String[10000]; String[]Z=new String[10000]; while(X[i+1]!=null){ Y=X[i].split(":",0); queue1.add(Y[0]); Z=Y[1].split(",",0); for(int j=0;j<Z.length;j++){ G=Integer.parseInt(Z[j]); addEdge(i,G); } i++; } } void hyoujitxt(){ loadtxt(); for(int i=0;;i++){//欠陥あり System.out.print(queue1.poll()); System.out.print(":"); while(adj[i].size()!= 0){ System.out.print(adj[i].poll()); System.out.print(","); } } } } class Kadai1Tester{ public static void main(String[] args){ Kadai1 abc=new Kadai1(); abc.hyoujitxt(); } }

###graph001.txtのソースコード
0:1,128,380
1:0,2,267,142
2:1,3,192,222,239
3:2,23,79
4:24,355
5:6,322
6:5,26,330,386
7:27,101
8:9,85,176
9:301,8,10,168,389
10:383,9,11,213,390,313
11:10,31,93,15
12:42,32,106
13:150,33,291,393
14:15,133,394
15:111,14,35,11,395
16:36,247
17:230,18,198,397
18:17,19,351,398
19:285,18,39,179
20:21,171
21:20,41,360,329
22:23,59,328
23:22,3,43,194,263
24:4,25,312
25:24,26,367
26:161,25,6,27,150
27:26,7,47,197,355
28:48,396
29:49,391
30:163,367,31,380,273,159
31:30,11,51,218
32:169,12,33,283,254,116
33:290,32,13,53,147
34:35,318,38
35:364,212,34,15,36,54
36:346,92,35,16,37,90,77
37:365,36,57,167,99
38:39,34
39:38,19,59,108
40:60,51
41:21,42,234
42:41,43,12,283
43:42,23,63,106
44:45,130
45:44,46,329
46:45,47,320
47:46,27,48,111,353,177
48:47,28,68,188
49:29,69,100
50:70,95,359
51:40,31,52,160
52:51,291,53,163
53:200,251,52,33,73,61
54:74,319,35
55:56,178
56:55,76,92
57:286,37,58,137
58:57,59,306
59:22,58,39,79,249
60:40,80,261
61:62,386,164,304,53
62:61,63,66,269,371,113,297
63:62,43,64,285,352,74
64:340,63,84,71,191
65:85,284
66:62,67,98
67:66,68,235,248
68:67,48,69,335
69:68,148,49,70,165,178
70:303,69,50,90,155,373
71:64,91,73
72:92,353
73:167,71,53,74,193,157,98
74:73,54,75,63,316
75:74,76,268,317
76:75,56,96,241
77:97,36
78:98,116
79:3,112,312,59,99,168
80:60,81,388,133,378
81:80,101,349
82:102,260
83:84,334
84:83,64,85,103,368
85:84,65,105,214,8
86:201,87,364
87:102,86,107,309,193
88:108,101,274
89:109,316
90:204,70,110,162,36
91:284,384,71,92,347
92:91,72,112,36,56
93:128,11,94,323
94:93,95,154
95:50,370,94,96,325
96:95,76,97,263,119
97:96,77,117,304
98:66,336,78,99,73
99:221,98,79,119,37
100:120,230,49
101:81,121,155,7,88,272,138
102:82,122,87,173,175
103:123,156,84
104:124,166
105:85,106,250
106:43,183,105,126,232,12
107:87,127,314
108:182,88,128,242,39
109:300,203,89,110,271
110:109,90,130,152,215
111:47,131,15,397
112:92,113,79
113:348,112,114,62,275
114:351,113,115,235
115:124,344,325,114,135,368
116:282,117,32,78
117:116,97,118,345
118:117,138,179
119:99,139,96
120:100,121,384,206,139
121:120,101,122,309
122:121,102,123,153
123:122,103,143,254
124:243,104,144,115
125:240,145,192,326
126:106,146,263,377
127:386,107,147,180,314
128:0,360,108,129,93,349,333
129:128,149,306,134,394,135
130:44,166,308,110,150,286,132
131:111,132,179
132:144,347,131,331,152,130
133:134,80,14
134:151,133,154,129
135:115,155,129
136:264,137,213
137:214,136,57,157,190
138:118,139,101
139:257,138,119,120,304
140:160,221
141:161,386
142:162,1
143:123,144,358
144:143,124,164,132
145:125,146,250
146:145,126,147,241
147:146,127,148,395,33
148:147,149,69,255
149:148,129,169,150,396
150:26,149,130,170,13
151:152,134
152:110,390,151,132,153,341,393,238
153:122,245,226,152,154,393
154:153,94,134,155,218
155:101,70,154,135,156,203
156:103,155,176,393
157:260,137,158,73,158
158:157,159,157
159:158,179,30
160:140,180,225,51,217,179
161:141,162,26
162:161,142,182,386,90,293
163:183,30,52,375
164:144,184,61
165:180,166,344,228,69
166:104,165,167,130
167:166,187,73,372,37
168:281,169,194,9,298,79
169:168,149,189,32
170:150,171,398
171:20,170,191,175,219
172:173,229
173:172,174,102
174:173,175,376
175:171,174,195,102
176:156,196,8
177:178,47
178:55,195,177,179,69
179:131,118,178,19,159,160,289
180:160,181,165,127,369
181:180,182,199
182:380,181,162,202,108
183:163,184,106
184:183,164,204,380
185:205,347
186:206,328
187:167,207,351,232
188:343,48,189,373
189:188,169,190,378
190:189,191,263,137
191:309,190,310,171,211,64
192:2,125,289,193,227
193:192,73,213,87
194:23,168,195,365
195:194,175,196,178
196:195,176,216,394
197:27,198,310
198:17,197,199,367
199:181,341,198,219,392
200:201,53,227,235,219
201:200,202,86
202:201,182,222,337
203:204,109,155
204:203,184,224,90
205:185,225,305,389
206:186,226,120
207:187,208,315,332
208:207,228,339,379
209:229,210
210:209,211,372
211:210,191,212,367
212:211,232,35
213:321,10,193,233,395,136
214:85,234,137
215:320,216,110
216:266,215,196,236,223
217:268,218,160
218:31,154,217,219,381
219:218,199,200,171
220:240,367,239
221:140,241,99,323
222:280,202,242,2
223:224,283,216
224:223,204,244,306
225:160,205,245,232,279
226:206,227,153
227:226,247,200,192
228:261,208,248,165
229:244,305,209,249,231,172
230:100,262,250,17
231:229,232,385
232:225,106,231,212,233,187
233:232,213,234,370,338
234:41,233,214,254,320
235:67,252,292,114,255,200
236:216,256,266
237:253,238,399
238:350,237,258,152
239:220,2
240:220,260,125
241:221,261,268,146,76
242:222,243,244,265,108,339
243:242,263,124
244:242,224,245,229
245:244,225,265,153
246:266,367
247:227,267,356,16
248:228,268,67
249:229,269,317,354,59
250:105,145,388,230,270,289
251:252,53
252:251,253,235
253:252,273,237
254:123,234,274,32
255:235,275,148
256:236,276,369
257:258,139
258:257,238,278,271
259:279,307
260:240,280,157,82,279
261:60,241,281,228,361,327,277
262:263,230
263:262,243,283,23,126,190,96
264:284,136
265:245,266,242
266:265,246,267,216,236
267:1,266,247,268,360
268:241,267,248,288,217,75
269:249,270,62,299
270:269,250,290,274
271:109,291,361,334,258,278
272:292,101
273:253,293,30
274:270,254,294,88
275:255,276,113
276:275,256,277,319
277:276,297,261
278:258,298,271
279:392,259,260,225
280:260,300,222
281:261,282,168
282:281,302,116,395
283:223,263,303,42,32
284:264,304,91,65
285:63,305,19
286:306,57,130,319
287:307,381
288:268,308,297
289:309,192,250,179
290:382,270,291,33
291:290,271,311,52,13
292:272,293,235,374
293:292,273,294,162
294:293,274,295,303
295:294,296,338
296:342,295,316,390
297:288,277,317,62
298:387,278,318,168
299:319,269
300:280,320,109
301:302,9
302:301,282,303,364,322
303:302,283,304,70,294
304:303,284,305,61,356,97,139
305:304,205,285,306,229
306:224,305,286,307,378,129,58
307:306,287,308,388,259
308:307,288,328,130
309:121,324,87,289,310,191
310:309,311,191,197
311:310,291,331,322
312:24,313,79
313:345,312,333,10
314:107,315,127
315:207,314,316,324
316:89,315,335,296,317,74
317:249,391,316,297,337,75
318:34,298,319,365
319:54,276,376,318,299,339,286
320:300,321,215,46,234,339
321:320,322,213
322:321,342,302,5,311
323:324,221,93
324:323,325,309,315
325:324,326,115,95
326:325,327,125
327:326,328,261,337
328:186,327,308,329,22
329:45,328,349,21
330:6,331,369
331:330,311,351,132,357
332:362,333,207
333:332,313,334,128
334:83,333,354,271
335:68,355,316
336:356,98
337:202,317,338,327
338:295,337,358,233
339:208,319,320,242
340:341,64
341:340,342,199,152
342:341,322,343,296
343:342,363,188
344:364,115,165
345:365,313,117
346:347,36
347:185,346,367,132,91
348:368,113
349:81,366,329,369,128
350:351,238
351:187,350,331,352,114,18
352:351,353,63
353:72,352,354,47
354:353,334,355,249
355:4,354,335,356,27
356:247,355,336,357,304,399
357:356,377,331
358:143,338,378,377
359:379,50
360:361,128,21,385,267
361:360,381,261,271
362:363,332
363:362,343,383,399
364:302,344,365,35,86
365:364,345,366,37,194,318
366:365,386,349
367:220,25,246,347,387,30,211,198
368:348,369,84,115
369:368,349,370,180,330,256
370:369,390,95,233
371:391,62
372:210,373,167
373:188,372,393,70
374:381,394,292
375:395,163
376:174,377,319
377:376,357,378,126,358
378:306,189,377,358,398,80
379:359,399,208
380:0,182,184,30,399
381:361,382,374,287,218
382:381,383,290
383:382,363,384,10
384:120,383,385,91
385:384,386,360,231
386:61,141,162,385,366,6,127
387:367,388,298
388:80,307,387,389,250
389:388,9,205
390:370,10,152,296
391:29,371,392,317
392:391,393,279,199
393:392,153,373,13,152,156
394:374,14,129,196
395:147,213,375,15,282
396:28,397,149
397:396,17,111
398:170,378,18,399
399:363,237,398,379,380,356

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

java

1void loadtxt(){ 2 3 int lineCount = 0; 4 String []X; 5 Scanner sc; 6 try{ 7 sc = new Scanner(new File("graph001.txt")); 8 9 String line=sc.nextLine(); 10 11 while(line!=null){ 12 lineCount++; 13 line=sc.nextLine(); 14 } 15 16 X=new String[lineCount]; 17 18 for(int i=0;i<lineCount;i++){ 19 X[i]=sc.nextLine(); 20 } 21 } 22 catch(Exception e){ 23 return; 24 } 25・・・ 26}

sc.nextLine()は、読み込むデータがないとNoSuchElementExceptionをスローします。
そのため、line=sc.nextLine()の部分でExceptionがスローされ、例外処理ではreturn(loadtxt処理終了)してます。
もし、読み込むデータがあるか判定したい場合は、hasNextを使ってください。

投稿2017/07/05 09:27

mr-hisa-child

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーメッセージを読みましたか?
Kadai1Tester.javaの68行目でヌルポインタが発生しています。この行にはなにが書いてありますか?

おそらく、フィールド変数adjが初期化されていないためだと考えられます。
また、Kadai1#loadTextが呼ばれていないためファイル読み込みは行われていないと思いますよ。

投稿2017/07/05 08:38

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mr-hisa-child

2017/07/05 08:47

loadTextの呼び出しですが、64行目で呼んでるみたいです。 おそらく、loadText内で例外が握りつぶされているせいですね。
yona

2017/07/05 09:08 編集

あ、本当ですね。 表示するためのメソッドの中でファイルの読み込みを行うメソッドを呼ぶのは良くないですね。 また、Exceptionでcatchを行うのは本当の原因が表面化されないのでやめるべきですね。
guest

0

Java

for(int i=0;;i++){//欠陥あり
System.out.print(queue1.poll());
System.out.print(":");
while(adj[i].size()!= 0){
System.out.print(adj[i].poll());
System.out.print(",");
}
}

iが際限なく増え続けるのにadj[i]を参照しているからでは?

投稿2017/07/05 08:38

LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2017/07/05 09:11 編集

というか、このwhile文無限ループ不可避ですね。いろいろとループの脱出条件を無視しすぎな気がします。 ↑勘違いですね。お恥ずかしい...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問