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

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

ただいまの
回答率

90.51%

  • Java

    15831questions

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

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

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 518

kd3

score 4

前提・実現したいこと

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

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;
    }
・・・
}

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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 17:59 編集

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/05 17:47

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

    キャンセル

  • 2017/07/05 18:08 編集

    あ、本当ですね。

    表示するためのメソッドの中でファイルの読み込みを行うメソッドを呼ぶのは良くないですね。

    また、Exceptionでcatchを行うのは本当の原因が表面化されないのでやめるべきですね。

    キャンセル

同じタグがついた質問を見る

  • Java

    15831questions

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