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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

解決済

FileReaderでファイルが読み込めません(Java)

k_java_beginner
k_java_beginner

総合スコア12

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1回答

0評価

0クリップ

250閲覧

投稿2022/06/24 02:14

前提

Spting bootを利用したプロジェクトで、
プロジェクトフォルダ内のファイルをFileReaderで読み込みたいのですが、
FileNotFoundExceptionが表示されてしまいます。

実現したいこと

プロジェクトフォルダ内のファイルをFileReaderで問題なく読み込みたい

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

Unhandled exception type FileNotFoundExceptionJava(16777384)

該当のソースコード

Java

package net.digskill.tweet_spring; import java.io.File; import java.io.FileReader; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TweetSpringApplication { public static void main(String[] args) { SpringApplication.run(TweetSpringApplication.class, args); File file = new File("/Users/******(自分の名前が入っています)/Desktop/digskill/workspace_java_springboot/tweet_spring/src/main/resources/files/pn.csv.m3.120408.trim"); FileReader fileReader = new FileReader(file); //ここの右辺部分に赤い波線が引かれ、エラーメッセージが出ています。 } }
. ├── 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

おそらく基礎的な部分で重大な誤解をしていると思います。
初歩的な質問で大変恐縮なのですが、どなたかご教示いただけますと幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。