前提
Spting bootを利用したプロジェクトで、
プロジェクトフォルダ内のファイルをFileReaderで読み込みたいのですが、
FileNotFoundExceptionが表示されてしまいます。
実現したいこと
プロジェクトフォルダ内のファイルをFileReaderで問題なく読み込みたい
発生している問題・エラーメッセージ
Unhandled exception type FileNotFoundExceptionJava(16777384)
該当のソースコード
Java
1package net.digskill.tweet_spring; 2 3import java.io.File; 4import java.io.FileReader; 5import org.springframework.boot.SpringApplication; 6import org.springframework.boot.autoconfigure.SpringBootApplication; 7 8@SpringBootApplication 9public class TweetSpringApplication { 10 public static void main(String[] args) { 11 SpringApplication.run(TweetSpringApplication.class, args); 12 13 File file = new File("/Users/******(自分の名前が入っています)/Desktop/digskill/workspace_java_springboot/tweet_spring/src/main/resources/files/pn.csv.m3.120408.trim"); 14 FileReader fileReader = new FileReader(file); //ここの右辺部分に赤い波線が引かれ、エラーメッセージが出ています。 15 } 16} 17
. ├── main │ ├── java │ │ ├── net │ │ │ ├── digskill │ │ │ │ ├── tweet_spring │ │ │ │ │ ├── config │ │ │ │ │ │ └── WebSecurityConfig.java │ │ │ │ │ ├── controller │ │ │ │ │ │ ├── AnalyticsController.java │ │ │ │ │ │ ├── AuthController.java │ │ │ │ │ │ ├── IndexController.java │ │ │ │ │ │ └── TweetController.java │ │ │ │ │ ├── entity │ │ │ │ │ │ ├── Tweet.java │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── form │ │ │ │ │ │ └── UserForm.java │ │ │ │ │ ├── repository │ │ │ │ │ │ ├── TweetRepository.java │ │ │ │ │ │ └── UserRepository.java │ │ │ │ │ ├── service │ │ │ │ │ │ ├── AnalyticsService.java │ │ │ │ │ │ ├── TweetService.java │ │ │ │ │ │ └── UserService.java │ │ │ │ │ ├── utility │ │ │ │ │ │ └── LocalDateTimeFormatter.java │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── TweetSpringApplication.java(←今回の実行ファイル) │ │ │ │ └── .DS_Store │ │ │ └── .DS_Store │ │ └── .DS_Store │ ├── resources │ │ ├── files │ │ │ └── pn.csv.m3.120408.trim(←読み込みたいファイル) │ │ ├── static │ │ │ ├── css │ │ │ │ └── style.css │ │ │ └── .DS_Store │ │ ├── templates │ │ │ ├── analytics │ │ │ │ └── analytics.html │ │ │ ├── auth │ │ │ │ ├── login.html │ │ │ │ └── register.html │ │ │ ├── edit │ │ │ │ └── edit.html │ │ │ ├── edit_profile │ │ │ │ └── edit_profile.html │ │ │ ├── layout │ │ │ │ ├── footer.html │ │ │ │ ├── header.html │ │ │ │ └── layout.html │ │ │ ├── mypage │ │ │ │ └── mypage.html │ │ │ └── top │ │ │ └── top.html │ │ ├── .DS_Store │ │ └── application.yml │ └── .DS_Store ├── test │ └── java │ └── net │ └── digskill │ └── tweet_spring │ └── TweetSpringApplicationTests.java └── .DS_Store
試したこと
・file.exists();でファイルの存在を検証
→上記ソースコード内の絶対パスを指定した時のみtrueが返ってきました。
しかし、FileReaderはエラーのままです。
他に、相対パス("src/main/resources/files/pn.csv.m3.120408.trim")、ファイル名のみ("pn.csv.m3.120408.trim")でも試してみたのですが、いずれもfile.exists()はfalseと出ました。
・ファイルの配置を変えてみる
→プロジェクトフォルダ外に配置したときには、絶対パスで指定するとfile.exists()がtrueになるものの、FileReaderのエラーは消えず
→同じ階層(tweet_spring直下)に配置した際には、絶対パス・相対パスいずれの指定でもfile.exists()はtrue、しかしFileReaderはエラーのままです。
・別のファイルで試してみる
ファイル自体に問題がある可能性を考え、test.txtファイルを作成し、プロジェクトフォルダ内同階層、プロジェクトフォルダ内のfilesディレクトリ直下、プロジェクトフォルダ外(デスクトップ)などに配置してみましたが、いずれも読み込めませんでした。
補足情報(FW/ツールのバージョンなど)
openjdk version "17.0.3" 2022-04-19
springframework.boot version '2.7.0'
VS Code 1.65.0
おそらく基礎的な部分で重大な誤解をしていると思います。
初歩的な質問で大変恐縮なのですが、どなたかご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/24 03:22
2022/06/24 07:24