前提・実現したいこと
javaで関数からファイル入出力を行い、コレクションに格納するプログラムを作っています
その際にファイル入力の関数を定義するところで定義外の範囲が呼び出されていると怒られました
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at KadaiO.read(KadaiO.java:61) at KadaiO.main(KadaiO.java:31)
該当のソースコード
java
1 char[] card=cards.toCharArray(); 2 3 if(card[0]=='R'){ 4 encryption=true; 5 read(args); 6 System.out.println("Next"); 7 } 8 9 else if(card[0]=='W'&&encryption==true){ 10 write(args); 11 System.out.println("Next"); 12 } 13 else if(card[0]=='C'&&encryption==true){ 14 comp(args); 15 break; 16 } 17 else if(card[0]=='W'||card[0]=='C'){ 18 System.out.println("No data..."); 19 } 20 21 22 else{ 23 System.out.println("R,WorC"); 24 System.out.println("R:read and enccrytion"); 25 System.out.println("W:write"); 26 System.out.println("C:write after composition"); } 27 } 28 29//関数はこちらです 30 static void read(String[] args){ 31 try (FileReader fr = new FileReader(args[0]); 32 BufferedReader brr = new BufferedReader(fr); 33 Scanner scr = new Scanner(brr); 34 FileWriter fw = new FileWriter(args[1]); 35 BufferedWriter bw = new BufferedWriter(fw)) { 36 String n1; 37 leng=0; 38 while(scr.hasNext()){ 39 n = scr.next(); 40 c=n.toCharArray(); 41 while(n.length()>leng){ 42 c[leng]+=3; 43 leng++; 44 } 45 n1=new String(c); 46 word.add(n1); 47 leng=0; 48 } 49 } catch (FileNotFoundException e) { 50 e.printStackTrace(); 51 } catch (IOException e) { 52 e.printStackTrace(); 53 } 54 55 } 56 57
試したこと
Scannerの列でエラーメッセージが出ていたので関数名を変えたり配列の要素となる部分がどこか探しました
回答1件
あなたの回答
tips
プレビュー