
現在Javaのプログラム課題を行っているものです。
前回こちらで質問させていただいたのですが、
解決に至らなかったので再度質問させていただきたいと思います。
前回の質問→ http://okwave.jp/qa4023470.html
こちらが修正後のプログラムの一部です。↓
package studyA;
import java.util.*;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
public class A23_StrArray extends A22_StrArray
{
/**
* テキストファイルの読込み(上書きモード)
* @param path ファイルのパス
* @exception FileNotFoundException ファイルが見つからなかった場合
* IOException 入出力エラーが発生した場合
*/
// 修正として付け加えた部分(開始位置)
public class CheckClass check
{
check = new CheckClass();
check = path;
public boolean accept(path)
{
//拡張子がtxtであるかのの判定を行います。
String ext = getExtension(path);
if (ext != null && ext.equals("txt"))
{
return true;
}
}
}
//プログラム修正箇所 (終点)
public void readFile(String path) throws Exception
{
try
{
//BufferedReader in = new BufferdReader(new FileReader())
FileReader fr = new FileReader(path);//FileReaderのインスタンスを作成
BufferedReader br = new BufferedReader(fr);//BufferedReaderのインスタンスを作成
String line;
list.clear();//リストをクリア
while ((line = br.readLine()) != null)//要素がなくなるまで繰り返す
{
add(line);
}
System.out.println("ファイルを読み込みしました。");
br.close();
}
catch(FileNotFoundException e)//ファイルが見つからなかった時
{
System.out.println("ファイルが見つかりません。");
}
catch(IOException e)//入出力エラーが発生した場合
{
System.out.println("入出力エラーが発生しました。");
}
}
現在は、コンパイルエラーでC:\Java>javac A23_StrArray.java
A23_StrArray.java:28: '{' がありません。
public class CheckClass check
と表示されます。一体どのように修正を加えれば、
txtのみ読み込んで、上書きなどができるプログラムを作ることができるのでしょうか?
No.2ベストアンサー
- 回答日時:
> // 修正として付け加えた部分(開始位置)
> public class CheckClass check
> {
> check = new CheckClass();
> check = path;
> public boolean accept(path)
> {
> //拡張子がtxtであるかのの判定を行います。
> String ext = getExtension(path);
> if (ext != null && ext.equals("txt"))
> {
> return true;
> }
> }
> }
> //プログラム修正箇所 (終点)
この部分って インナークラスの定義なんですか?
それとも 拡張子チェックのロジック部分ですか?
インナークラスなら
> public class CheckClass check
の最後の check は変ですよね
ロジックにしても
> check = new CheckClass();
> check = path;
の部分で CheckClassをインスタンス化してから それにpathを代入して潰してるし ・・・
この回答への補足
申し訳ありません。
チェックロジック部分を組んだつもりなのですが、
あまりにもお粗末でしたね・・・
この様な場合はどのように式の構築をすればよいのでしょうか?
No.3
- 回答日時:
#1です。
コンパイル時のエラーについては先ほどおかしいと書いた部分の文法エラーの為ですね。
とりあえず拡張子のチェックをするだけならば、こんな感じでどうでしょうか?
1.今回のソースで「修正で付け加えた部分」の開始から終了までざっくり消す。
2.readFile()メソッドの中のFileReaderのインスタンス生成前にpath変数に含まれる拡張子をチェックする。
(以下のソースは動作確認はしていませんのでこんな感じでってことで)
public void readFile(String path) throws Exception
{
try
{
if (path != null && !path.endsWith(".txt"))
{
System.out.println("パスがおかしいか、拡張子が違うみたい");
return;
}
FileReader fr = new FileReader(path); //FileReaderのインスタンスを作成
(以降省略)
※ソースの前に全角空白が入っているのでそのままコピー&ペーストするとエラーになります。
迅速な回答ありがとうございました。
この様な分かりにくい問いにお答えくださった事に感謝いたします。
早速貼り付けて試して見ることにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InputStream.read()でタイムア...
-
ProcessBuilderを使用して、対...
-
JavaScriptの変数をjavaのメソ...
-
javaで質問です。 文字列2023/2...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
JavaScriptとVBScriptに関して
-
JSPでHashMap・配列の変数の値...
-
eclipseに記述したjavaファイル...
-
javaのコンパイルエラーについ...
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
-
strutsでlist型の入力を行うには
-
StrutsでJSPからListを受け取り...
-
requestの値が削除されません…
-
VBAで配列の計算
-
System.err. printlnとSystem.o...
-
Javaを使って、string型の年月...
-
TextAreaでの文字の色
-
GetDIBits関数の使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
csv出力について
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
equalsの逆
-
戻り値を使用する呼出
-
JAVAでエラーがでる。
-
FileクラスのcanRead/canWrite...
-
Java 出席状況を表す文字列から...
-
Javaでデータに登録する度にID...
-
ファイルの読み飛ばしが出来ま...
-
九九を横に表示する。
-
javaのfor文が機能してないみた...
-
Javaの質問です。テキストファ...
-
Servletでテキストボックスに入...
-
java連結
-
java.lang.NoClassDefFoundErro...
-
拡張子の読み込み制限を設けた...
-
[JAVA]エラーが解決できません。
おすすめ情報