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

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

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

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

Q&A

1回答

2831閲覧

javaFXを使ってのテキストエディタ作成

syoo

総合スコア8

Java

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

0グッド

0クリップ

投稿2016/12/11 07:02

このプログラムでテキストフィールドにファイル名を入力した際にそのパスにファイルがあるのか、ファイルが保存できるのかを判定しようと考えているのですがif文に何を書けば判定できるのかが分かりません

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.Alert.AlertType;

public class SampleController{

@FXML private Label labelMessage; @FXML private Button buttonLoad; @FXML private Button buttonSave; @FXML private TextField textFile; @FXML private TextField textMessage; String text = textFile.getText(); @FXML public void handleButtonLoadAction(ActionEvent event){ FileReader fr = new FileReader(text); BufferedReader br = new BufferedReader(fr); if() { Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("読み込み成功"); alert.setHeaderText(null); alert.setContentText(textFile.getText() + "を読み込みました"); }else{ Alert alert = new Alert(AlertType.ERROR); alert.setTitle("読み込み失敗"); alert.setHeaderText(null); alert.setContentText(textFile.getText() + "の読み込みを失敗しました"); } fr.close(); br.close(); } public void handleButtonSaveAction(ActionEvent event){ FileWriter fw = new FileWriter(text); BufferedWriter bw = new BufferedWriter(fw); if(){ Alert alert = new Alert(AlertType.INFORMATION); alert.setTitle("保存成功"); alert.setHeaderText(null); alert.setContentText(textFile.getText()+ "に保存しました"); }else{ Alert alert = new Alert(AlertType.ERROR); alert.setTitle("保存失敗"); alert.setHeaderText(null); alert.setContentText(textFile.getText()+ "に保存失敗しました"); } fw.close(); bw.close(); }

}

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

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

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

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

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

KSwordOfHaste

2016/12/11 09:56

プログラムコードは「</>」ボタンを使って整形し字下げしてください。
guest

回答1

0

Javaプログラムに限らず一般的に「ファイルの書き込みが成功するか失敗するか」を実際に書き込みする前にチェックすることは完全には行えません。普通は書き込み処理を初めてそれが全て完了すれば「正常」途中で例外が起これば「失敗」とするのがよいと思います。

java

1public void handleButtonSaveAction(ActionEvent event) { 2 try (FileWriter fw = new FileWriter(text); 3 BufferedWriter bw = new BufferedWriter(fw)) { 4 ...書き込み処理 5 } catch (IOException ex) { 6 Alert alert = new Alert(AlertType.ERROR); 7 alert.setTitle("保存失敗"); 8 alert.setHeaderText(null); 9 alert.setContentText(textFile.getText()+ "に保存失敗しました"); 10 return; // returnする直前に自動的にcloseされます 11 } 12 // ここでは既にcloseされている 13 Alert alert = new Alert(AlertType.INFORMATION); 14 alert.setTitle("保存成功"); 15 alert.setHeaderText(null); 16 alert.setContentText(textFile.getText()+ "に保存しました"); 17}

なお、I/Oなどはtry-with-resource文を使って上のように書くとよいと思います。try-with-resourceのスコープから外れるとき(正常にせよエラーにせよ)自動的にcloseしてくれます。

投稿2016/12/11 10:06

KSwordOfHaste

総合スコア18394

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問