こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Javaの課題について質問です。パート(1)

1ヶ月前に出されたjavaの課題でどうしてもわからなく投稿させて頂きました。正直自分の力で解決するべきだと思いますが初めてjavaに触れるので全く分からず投稿しました、どうかご教授下さい。
 コンパイルしたのですが01,06,99以外の処理に全てエラーが出てしまいます。07,08に関しては最初の頭の数で昇順、降順されてしまいます。。
実行クラスはパート(2)に載せます。


import java.util.ArrayList;
public class A21_StrArray {
ArrayList<String> list = new ArrayList<String>();

public void add(String data){    //要素追加
list.add(data);
}
public void set(int index, String data){   //指定インデックスがない場合エラー
list.set(index,data);
}

public String get(int index) throws IndexOutOfBoundsException{   //指定インデックスがない場合エラー
String str;
str = list.get(index);//指定文字列を取得
return str;

}
public void clear(){  //要素クリア
list.clear();
}
}

import java.util.Collections;
public class A22_StrArray extends A21_StrArray{
public String[] getAll(){
String[] all = new String[list.size()]; //全ての要素を配列で取得
for(int i=0; i<list.size(); i++){
all[i] = super.get(i);
}
return all;
}
public int getIndex(){      //要素数を取得
int item;
item = list.size();
return item;
}
public static final int ASC_SORT = 0; //昇順ソート

public static final int DESC_SORT = 1;   //降順ソート

public void sort(int mode){           //引数 mode ASC_SORT, DESC_SORT
if(ASC_SORT == mode){
Collections.sort(list);
}
else if(DESC_SORT == mode){
Collections.reverse(list);
}
}
}

以下ファイルの引数は全てpath

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class A23_StrArray extends A22_StrArray{
public void readFile(String path)throws Exception{
try{
FileReader in1 = new FileReader("path"); //テキストファイルの読み込み(上書きモード)
int ch;
while ((ch = in1.read()) != -1){
System.out.print(Integer.toHexString(ch) + " ");
}

in1.close();
}catch (IOException e) {
System.out.println(e);
}
}
public void readFile(String path , boolean modeAdd)throws Exception{ //テキストファイルの読み込み(追記/上書きモード)

try {
BufferedReader br1 = new BufferedReader(new FileReader(path));
String str1 ;
if(modeAdd == true){
while ((str1 = br1.readLine()) != null) {
list.add(str1);
}
br1.close();
}

if ( modeAdd == false){
list.clear();
while ((str1 = br1.readLine()) != null){
list.add(str1);
}
br1.close();
}
}catch (IOException e){
System.out.println(e);
}
}
public void writeFile(String path)throws Exception{ //テキストファイルの書き込み(上書きモード)

try{
FileWriter wr1 = new FileWriter("path");
String str2 = null ;
wr1.write(str2);
wr1.close();
}catch (IOException e) {
System.out.println(e);
}
}
public void writeFile(String path,boolean modeAdd)throws Exception{   //テキストファイルの書き込み(追記/上書きモード)

try{
BufferedReader br2 = new BufferedReader(new FileReader(path));
String str3 ;
if(modeAdd == true){
while ((str3 = br2.readLine()) != null) {
list.add(str3);
}
br2.close();
}
if(modeAdd == false){
list.clear();
while ((str3 = br2.readLine()) != null){
list.add(str3);
}
br2.close();
}
}catch (IOException e) {
System.out.println(e);
}
     }
}

投稿日時 - 2013-06-16 16:59:47

QNo.8136538

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

気になる点を回答します。文字数制限からかと思いますが、
・必要なプログラムの箇所
・エラーメッセージの内容
・わからないこと、期待する結果
をまとめて1つの質問でしていただければと存じます。

*public void readFile(String path , boolean modeAdd)throws Exception{ //テキストファイルの読み込み(追記/上書きモード)
追記モードでの読み込みにおいて、try~catchがありません。
というより、共通化できそうです。ファイルを読む前に、modeAddを判定して、上書きモードならばリストをクリアすればよいので。

*public void writeFile(String path)throws Exception{ //テキストファイルの書き込み(上書きモード)
プログラムはできているようですが、何を書けば良いのかわかりません。理由は実装を見るとこのようになっているためです。
String str2 = null ;
wr1.write(str2);

*public void writeFile(String path,boolean modeAdd)throws Exception{   //テキストファイルの書き込み(追記/上書きモード)
writeFileメソッドにwriterが見つかりません(Readは入力、Writerが出力)
プログラム内容は、ファイルから一行ずつ読み込んで、リストに格納する定義に見えます。

*ソートは期待する結果がわからないので回答出来ません。

投稿日時 - 2013-06-17 17:47:14

お礼

 なるほど~やっぱりあなたのようなこれを見ただけである程度回答を導ける方がいらっしゃるのですね。
実は質問パート(2)を出しているのですがそれが実行クラスです。
 なんか課題二日ほぼ寝ないでやったら8割できちゃいました(*´∀`*)
 ただこのように細かい所を直さねばと思いますので大変参考になりました、早速共通化試してみます(^-^)
ありがとうございました!!
   
 
 

投稿日時 - 2013-06-17 22:44:18

あなたにオススメの質問