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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Java

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

Q&A

解決済

1回答

1471閲覧

java Pathクラス ファイル存在確認

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2020/06/28 04:58

編集2020/06/28 05:31

前提・実現したいこと

ファイルの存在を確認したい

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

エラーメッセージ

該当のソースコード

java

1ソースコード 2```import java.nio.file.Files; 3import java.nio.file.Path; 4import java.nio.file.Paths; 5 6public class PathMain { 7 8 public static void main(String[] args) { 9 Path path=Paths.get("TestFile.txt");//pathインスタンスを作成 10 11 //ファイルの存在を確認 12 if(Files.exists(path)) { 13 System.out.println("ファイルはあります"); 14 }else { 15 System.out.println("ファイルが見つかりません"); 16 } 17 if (Files.notExists(path)) { 18 System.out.println("ファイルが存在しません"); 19 } else { 20 System.out.println("ファイルが存在します"); 21 } 22 } 23} 24 25### 試したこと 26 27eclipsを閉じる前は正しく表示されていたのですが、開きなおしたら表示されなくなりました。 28 29### 補足情報(FW/ツールのバージョンなど) 30 31私の記述したコードの実行結果は 32ファイルが見つかりません 33ファイルが存在しません 34と表示されます。しかしサイトに書かれている実行結果には表示されるとなっていました。 35何が間違っているか知りたいです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daregada

2020/06/28 05:15

「TestFile」というファイル名のファイルはどこに置いてあるんです?
退会済みユーザー

退会済みユーザー

2020/06/28 05:29

すみません。上のコードが間違っており"TestFile"ではなく"TestFile.txt"です。 また、ほとんど理解できていないのでおかしな質問になるかもしれませんが"TestFile.txt"はどこかに作成しておく必要があるのでしょうか。 Path path=Paths.get("TestFile.txt"); では足りないのですか?
Daregada

2020/06/28 05:40 編集

これは、「カレントディレクトリ(フォルダー)にあるファイルを名前で指定して、存在するかどうかを調べる」コードです。(あなたが参考にした)サイトに書かれている実行結果は、カレントフォルダーに指定したファイルが存在していて、その結果を表示しています。まだ、該当ファイルを作成していないのなら、当然「ファイルが見つかりません」になります。 まとめると、「プログラムは正しく動いていて、あなたがプログラムの動作を理解していないために実行結果を理解できていない」ということです。
退会済みユーザー

退会済みユーザー

2020/06/28 05:46

Path path2=Paths.get("TestFile2.txt");//path2インスタンスを作成 if(Files.exists(path2)) { System.out.println("ファイルはあります"); }else { System.out.println("ファイルが見つかりません"); } その続きでこれを書き、実行した結果は ファイルはあります となりました。これはなぜこのようになるのでしょうか。 また、可能であればファイルの作成方法を教えていただきたいです。
Daregada

2020/06/28 06:05

なぜ、と言われても、「おそらくあなたがプログラムを実行したときのカレントディレクトリにTestFile2.txtが存在しているから」ぐらいのことしか推測できません。自分の使っているOSや、Eclipseで作業中のプロジェクトフォルダーや、そこにどんなファイルが存在するか、などの、判断に必要な情報をまったく提供していないことを自覚してくださいね。
guest

回答1

0

ベストアンサー

コメントのやりとりで推測できたのですが、質問者はPaths.get()を、「指定したファイルを作成する」方法だと思っているようです。

実際にはそうではなく、Paths.get()は、引数に基づいてパス情報(ファイルやディレクトリ(フォルダー)の位置を示す情報)を作成するに過ぎません。作成されたパス情報のファイルやディレクトリが実際に存在するかどうかは、この時点ではわかりません。

そこで、Files.exsits()などにパス情報を渡して実際に存在するか確かめているわけです。

ファイルの作成方法は、Files.createFile()をご自分で調べてみるといいかと思います。

投稿2020/06/28 05:52

編集2020/06/28 06:00
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問