プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Java
  • 【Java】テキストファイルの読み書き(サンプルあり)
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Java】テキストファイルの読み書き(サンプルあり)

05.05

  • miyabisan2
  • コメントを書く

この記事は1分で読めます

テキストファイルの読み込み

サンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Main {
 
public static void main(String[] args) {
 
    try {
 
     FileReader fr = new FileReader("C:/develop/test.txt");
 
            int data;
 
            while ((data = fr.read()) != -1) {
                System.out.print((char) data);
            }
 
            fr.close();
 
     } catch (IOException e) {
e.printStackTrace();
}
 
}
}

解説

data = fr.read()) != -1

FileReaderには、Stringを返すような文字列はありません。

なので、非常にめんどうですが、readメソッドを使って、ファイルの文字を一文字ずつ取り出す必要があります。

ただ、readの戻り値としてint型が返って来るので、処理する際は、char型にキャストしてあげる必要があります。

これは、終端まで言った際の印として、「-1」を返すようになっているのですが、char型ではそうした終端の数字を扱えないので、苦肉の策としてint型が返る仕様となってしまったようです。

テキストファイルの書き込み

サンプル

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.io.FileWriter;
import java.io.IOException;
 
public class Main {
 
public static void main(String[] args) {
 
    try {
     FileWriter fw = new FileWriter("c:/develop/test.txt",false);
     fw.write("Hello World");
     fw.flush();
     fw.close();
} catch (IOException e) {
e.printStackTrace();
}
 
}
}

解説

FileWriter fw = new FileWriter("c:/develop/test.txt",false);

FileWriterクラスをインスタンス化し、指定したファイルを開くことができます。

ファイルがある場合は、上書きし、ない場合は新規作成します。

なお、第二引数のfalseは、書き込む際は、必ず先頭から文字を書き込んでいくことになります。

fw.write("Hello World");

ファイルに対して、「Hello World」という文字列の書き込みを要求します。

しかし、すぐに書き込まれるわけでなく、一旦「バッファ」にためておき、後でまとめて書き込むことになります。

なので、必ずしもファイルに正しく書き込まれない可能性があるという点は注意です。

fw.flush();

閉じる前には、必ず書きましょう。これを書かないと、writeメソッドだけでは、正しくファイルに書き込まれない可能性があるためです。

JVMに対して、もし欠損している文字データがあれば、強制的に書き込んでくれという要求をするので、書き漏らしを防げます。

スポンサーリンク
  • 2018 05.05
  • miyabisan2
  • コメントを書く
  • Java
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 06.20

    【Struts】画面遷移させる。

  2. 2018 04.22

    【Java】Oracleに接続するには?

  3. 2018 04.22

    【JSP】JSTLで条件分岐を行うには?

  4. 2018 04.15

    【サーブレット】共通処理を書くには?(サーブレットフィルタの利用)

  5. 2018 04.22

    【Java】JDBCプログラムを理解する。

  6. 2018 04.15

    【JSP】基礎的なこと(暗黙オブジェクト等)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Java】ソフトウェアのライセンスについて

【SQL】パフォーマンスを考えるに当たり必要な「結合」…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー