
はじめまして。
よろしくお願いいたします。
プログラミングに興味をもち、JAVAに触れている者です。
現在eclipseでCSVファイルを列ごとに読み込んで表示する、というプログラムを作成しているのですが、コンパイルエラーを除去することができません。
エラー内容は
「処理されない例外の型 FileNotFoundException」
です。
これを見る限りでは読み込むファイルがないということらしいのですが、CSVファイルはちゃんと作成し、作成中のプログラムのファイルがあるディレクトリに置いてあります。
原因を探したいのですが、eclipseのこともjavaのこともよくわかっていないため、まるで見当がつきません。
どうかご教示をお願いいただけませんでしょうか?
以下が作成中のプログラムです。
package ioTest;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.FileInputStream;
public class IOsample {
public static void main (String[] args){
BufferedReader br = null;
File csv = new File("sampleCSV.csv");
br = new BufferedReader(
new InputStreamReader(
new FileInputStream(csv)));
while (br.ready()){
System.out.println(br.readLine());
}
br.close();
}
}
レベルの低い質問で申し訳ありませんが、なにとぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
ファイルが見つからないのなら、絶対パスを取得してファイルがどのパスを参照しているのか調べてみるといいでしょう。
File csv = new File("sampleCSV.csv");
System.out.println(csv.getAbsolutePath());
ご教示ありがとうございます。
やってみたところ、目的のCSVファイルの絶対パスが表示されました。
やはり原因は他の方が言及されているとおり、例外処理をしていないことのようです。
余談ではありますが、知りたい情報をSystem.out.println();で表示させるという応用法に妙に感動してしまいました。
私にとってSystem.out.println()というと、ただ文字を表示するだけのもの、という程度の認識しかなかったものですから。
大変勉強になりました。
No.3
- 回答日時:
とりあえずコンパイルエラーをなくしたいのであれば、下のような感じでtry, catchで囲んでください。
なぜこうするのかとか、他の方法とかは「例外」について勉強を進めていくとわかるかと思います。
public static void main (String[] args){
BufferedReader br = null;
try{
File csv = new File("sampleCSV.csv");
br = new BufferedReader(
new InputStreamReader(
new FileInputStream(csv)));
while (br.ready()){
System.out.println(br.readLine());
}
br.close();
}
catch(IOException e){
System.err.println("エラーが発生しました:" + e);
}
}
アドバイスありがとうございます。
なぜ実用レベルではない遊び半分のプログラムですら例外処理をきちんとしなければならないのか、については「Javaの仕様です」というくらいの認識しかないのですが、これから少しづつ勉強して行こうと思います。
No.1
- 回答日時:
必ずtry&catchを入れないと上手く動かない気も・・・。
http://www.inf.ie.kanagawa-u.ac.jp/uchida/class/ …
まあ、ファイルが見つからないならフルパスにしてみるとか、環境変数にカレントディレクトリが含まれてるのか確認するのも一つの手段かと思いますが。
お返事ありがとうございます。
仕事が終わってから少し調べてみたのですが、どうやら例外処理?をきちんと作ってやらないとコンパイルすらできないのですね。
実用を考えなければ例外処理などなくても良いものだとばかり思っていました。
勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
戻り値を使用する呼出
-
テキストファイルから空白行をよむ
-
九九を横に表示する。
-
javaからffmpegの利用
-
javaでCSVの中身から最大値を表...
-
Java・ファイルへの書き込み
-
BufferedReaderでのエラー
-
ファイルの読み飛ばしが出来ま...
-
C言語のポインターに関する警告
-
動的配列が存在(要素が有る)か...
-
System.err. printlnとSystem.o...
-
(漢和辞典)部首の配列法は?
-
javaの掲示板について
-
偶数ビットだけと奇数ビットだ...
-
オブジェクトの中のプロパティ...
-
1~100までの数字を表示したい
-
int型で表示したいのですが・・・
-
所持金の計算式とその表示の仕方
-
ORA-01858: 数値を指定する箇所...
-
PrintWriterクラスのバッファ機...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
csv出力について
-
InputStream.read()でタイムア...
-
Java int sum = 0は必要ですか?
-
FileクラスのcanRead/canWrite...
-
Class.forNameでエラーになる
-
BufferedReaderでのエラー
-
equalsの逆
-
Javaでデータに登録する度にID...
-
ProcessBuilderを使用して、対...
-
テキストファイルの任意の文字...
-
Javaの質問です。テキストファ...
-
JAVAでエラーがでる。
-
java連結
-
[JAVA]エラーが解決できません。
-
九九を横に表示する。
-
javaからffmpegの利用
-
Java FileDialog に関して
-
JavamailでGmailのお気に入りフ...
おすすめ情報