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

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

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

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

Q&A

1回答

1941閲覧

java ファイル読み込みでファイル内の数字と異なるエラー

yugdm2

総合スコア7

Java

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

0グッド

0クリップ

投稿2016/11/24 07:56

編集2016/11/24 08:27

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
javaで部活動の名前と部員数が記録されているファイルを読み込み、部活動の名前をリストに表示し、クリックすると選択した部活動の部員数をテキストフィールドに表示するプログラムです。

結果は出力されているが、その結果が期待したものとは異なっていました。
運動部、文化部ごとに用意されたファイルの部員数を降順に並べることを実現したいです。

ファイルを読み込む機能を実装中に以下のエラーメッセージが発生しました。

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

イメージ説明
イメージ説明

ファイルは読み込めるのですが、画像の通りになってしまいます

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

java

1package reidai; 2import java.awt.BorderLayout; 3import java.awt.EventQueue; 4import javax.swing.ButtonGroup; 5import javax.swing.JFrame; 6import javax.swing.JPanel; 7import javax.swing.border.EmptyBorder; 8import javax.swing.JScrollPane; 9import javax.swing.JList; 10import javax.swing.JTextField; 11import java.awt.FlowLayout; 12import javax.swing.JLabel; 13import java.awt.Dimension; 14import javax.swing.JButton; 15import java.awt.event.ActionListener; 16import java.awt.event.ActionEvent; 17import java.io.BufferedReader; 18import java.io.File; 19import java.io.FileReader; 20import java.io.IOException; 21import javax.swing.event.ListSelectionListener; 22import javax.swing.event.ListSelectionEvent; 23import java.awt.GridLayout; 24import java.awt.Component; 25import javax.swing.SwingConstants; 26import javax.swing.ScrollPaneConstants; 27import java.util.ArrayList; 28import java.awt.BorderLayout; 29import java.awt.EventQueue; 30import java.awt.event.ActionEvent; 31import javax.swing.JRadioButton; 32import javax.swing.JComboBox; 33public class Rei4_09 extends JFrame { 34private static final long serialVersionUID = 1L; 35private JPanel contentPane; 36private JPanel panelCenter; 37private JTextField textField01; 38private JTextField textField02; 39private JTextField textField03; 40private JLabel label01; 41private JLabel label02; 42private JScrollPane scrollPane; 43private JList list; 44private JList list1; 45private JLabel label03; 46private JButton button; 47private JPanel panel4; 48private JPanel panel3; 49private JPanel panel2; 50private JPanel panel1; 51private JRadioButton radioButton01; 52private JRadioButton radioButton02; 53private JComboBox comboBox; 54private JRadioButton aBunkabu; 55private JRadioButton aUndoubu; 56private final static int MAX=60; 57private int buinsu[]; 58private int buinsu1[]; 59private String[] aseito=new String[MAX]; 60private String[] bseito=new String[MAX]; 61 62public static void main(String[] args) { 63EventQueue.invokeLater(new Runnable() { 64public void run() { 65try { 66Rei4_09 frame = new Rei4_09(); 67frame.setVisible(true); 68} catch (Exception e) { 69e.printStackTrace(); 70} 71} 72}); 73} 74 75public Rei4_09() { 76 77setTitle("リストとファイル"); 78setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 79setBounds(100, 100, 700,250); 80contentPane = new JPanel(); 81contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 82contentPane.setLayout(new BorderLayout(0, 0)); 83setContentPane(contentPane); 84panelCenter = new JPanel(); 85contentPane.add(panelCenter, BorderLayout.CENTER); 86panelCenter.setLayout(new GridLayout(2, 1, 0, 0)); 87 88 89panel1 = new JPanel(); 90panel1.setAlignmentY(Component.BOTTOM_ALIGNMENT); 91panelCenter.add(panel1); 92panel1.setLayout(new GridLayout(6, 1, 0, 0)); 93 94label01 = new JLabel("クラブ名"); 95panel1.add(label01); 96label01.setHorizontalAlignment(SwingConstants.LEFT); 97textField01 = new JTextField(); 98panel1.add(textField01); 99textField01.setColumns(10); 100label02 = new JLabel("部員数"); 101label02.setHorizontalAlignment(SwingConstants.LEFT); 102panel1.add(label02); 103textField02 = new JTextField(); 104panel1.add(textField02); 105textField02.setColumns(10); 106 107label03 = new JLabel("クラブ名2"); 108panel1.add(label03); 109label03.setHorizontalAlignment(SwingConstants.LEFT); 110textField03 = new JTextField(); 111panel1.add(textField03); 112textField03.setColumns(10); 113 114panel2 = new JPanel(); 115FlowLayout fl_panel2 = (FlowLayout) panel2.getLayout(); 116fl_panel2.setAlignment(FlowLayout.RIGHT); 117panelCenter.add(panel2); 118radioButton01 = new JRadioButton("運動部"); 119 radioButton01.addActionListener(new ActionListener() { 120 public void actionPerformed(ActionEvent e) { 121 ArrayList<String> tmpAL=new ArrayList<String>(MAX); 122 buinsu=new int[MAX]; 123 int i=0; 124 File fl = new File("./undoubu.txt"); 125 try{ 126 BufferedReader br = new BufferedReader(new FileReader(fl)); 127 String cItem; 128 while((cItem=br.readLine())!=null && i<MAX){ 129 tmpAL.add(cItem); 130 if((cItem=br.readLine())==null) 131 break; 132 buinsu[i]=Integer.parseInt(cItem); 133 i++; 134 } 135 br.close(); 136 }catch(IOException fe){ 137 textField01.setText(fe.toString()); 138 } 139 140 tmpAL.trimToSize(); 141 list.setListData(tmpAL.toArray(new String[tmpAL.size()])); 142 String[] tmpS=tmpAL.toArray(new String[tmpAL.size()]); 143 String suuA; 144 int suuB; 145 for(int j=0;j<i-1;j++){ 146 for(int k=j+1;k<i;k++){ 147 if(buinsu[j]<buinsu[k]){ 148 suuB=buinsu[j]; 149 buinsu[j]=buinsu[k]; 150 buinsu[k]=suuB; 151 suuA=tmpS[j]; 152 tmpS[j]=tmpS[k]; 153 tmpS[k]=suuA; 154 } 155 } 156 } 157 } 158 }); 159 panelCenter.add(radioButton01); 160 161 radioButton02 = new JRadioButton("文化部"); 162 radioButton02.addActionListener(new ActionListener() { 163 public void actionPerformed(ActionEvent e) { 164 ArrayList<String> tmpAL=new ArrayList<String>(MAX); 165 buinsu=new int[MAX]; 166 int i=0; 167 File fl = new File("./bunkabu.txt"); 168 try{ 169 BufferedReader br = new BufferedReader(new FileReader(fl)); 170 String cItem; 171 while((cItem=br.readLine())!=null && i<MAX){ 172 tmpAL.add(cItem); 173 if((cItem=br.readLine())==null) 174 break; 175 buinsu[i]=Integer.parseInt(cItem); 176 i++; 177 } 178 br.close(); 179 }catch(IOException fe){ 180 textField01.setText(fe.toString()); 181 } 182 183 tmpAL.trimToSize(); 184 list.setListData(tmpAL.toArray(new String[tmpAL.size()])); 185 String[] tmpS=tmpAL.toArray(new String[tmpAL.size()]); 186 String suuA; 187 int suuB; 188 for(int j=0;j<i-1;j++){ 189 for(int k=j+1;k<i;k++){ 190 if(buinsu[j]<buinsu[k]){ 191 suuB=buinsu[j]; 192 buinsu[j]=buinsu[k]; 193 buinsu[k]=suuB; 194 suuA=tmpS[j]; 195 tmpS[j]=tmpS[k]; 196 tmpS[k]=suuA; 197 } 198 } 199 } 200 201 } 202 }); 203 204 panelCenter.add(radioButton02); 205

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

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

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

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

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

swordone

2016/11/24 08:11

画像が例外のスタックトレースのようですが、肝心の例外クラスが見えません。この上の行はありませんか?
guest

回答1

0

たぶん同一人物だと思うので、過去の質問を解決してから質問し直した方がいいですよ。

また、ソートするならArrays.sortを使った方がいいですね。
思い通りの結果にならない時はログ出力を行い、想定した値と実際の値を比較してください。

投稿2016/11/24 08:14

yona

総合スコア18155

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

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

yugdm2

2016/11/24 08:41

ありがとうございます cItem=br.readLine()を何に書き換えればいいかがわからないので前の投稿より画像などをいれてもう一度投稿した次第です 明日になるのですが、もし、指摘された部分を直してもわからなければ質問させていただこうと思っています
yona

2016/11/24 08:47

回答の意味がわからないなら質問にコメントするべきですね。 cItem=br.readLine()は行を読み取り、次回の読み取り位置を次の行に写します。そのためあなたのコードでは奇数行に対してしか処理が行われていません。 cItem=br.readLine()==nullではなく、cItem==nullにしてください。
yugdm2

2016/11/24 09:02

誠に失礼なことをなしてしまいましたこと深くお詫び申し上げます。 ご丁寧に教えて頂きありがとうございます。今後は充分注意いたします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問