イントロダクション
昔は、FileReader, FileInputStreamを使用してやっていました。
今でも使用できますが、java.nio.files.Filesを使用する方法がスタンダードになってきたかな?という感じです。
記述する内容は、昔よりも格段に減りました。
// FILEのパス Path filePath = Paths.get(FILE_PATH); List<String> lines = Files.readAllLines(filePath);
こんな感じで処理が実現します。本当はFileRaderなど使用していますが、インスタンスの取得が簡単になったというところです。
ちょっと省略してますが。。。
まぁ細かいところはこちらのソースをご覧ください。
ダウンロードして実行できるはずです。
※Macで作成しているためビルドパストか違っています。
ソースのみを取得して実行することをオススメします。
MacでEclipseを使用している人はプロジェクトごとPullしておっけーです。
ちなみに、ファイルの読み込みなどを行うときに
「パスの指定」で結構つまづきます。
ルートになるパスがプロジェクトのディレクトリになるのですが
頭に「/」がついたりつかなかったりと。。。
とりあえず、「パスの使い方サンプル」を実装しました。
System.out.println("*** Paths Testing ***"); Path path = Paths.get("resources", "title.txt"); // 標準出力 path.forEach(System.out::println); System.out.println("*** read File ***"); try { List<String> list = Files.readAllLines(path, Charset.defaultCharset()); list.forEach(System.out::println); } catch(IOException e) { e.printStackTrace(); }
- Paths.get(ファイルへのあるフォルダまでのパス, ファイル名);
呼び出しはクラス名.メソッド名の様に呼びます(staticメソッドの呼び出し)
の様に引数に値を設定します。 ファイルは以下にあります
「project/resource/title.txt」 - 取得した「Path(Pathsとは別のクラスです)」からforEachメソッドを使用して
System.out.printlnメソッドを渡しています。
これはラムダ式の書き方でループで取得したpathの中身を上記のメソッドに渡す
という処理になります - ListでのforEach()です。これも上記と同様です。
ラムダ式の書き方でclazz.xxx(
コレクション内の要素変数(名前は自由) -> メソッドなどの処理);
の様に記載します。
サンプル、パターン1と2は同じ動きをします。// Pattern1 xxxx.forEach(str -> method(str)); // Pattern2 xxxx.forEach(Class::method);
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic一覧
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜
Git関連
- Java Git clone in Eclipse 〜サンプルの取得〜
- Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜
- IntelliJ IDEA Git〜Gitリポジトリからクローン〜
JavaFX関連ページ
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
- JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
- Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜
ステップアップ関連ページ一覧
- Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
- ステップアッププログラミング〜Java FxでHelloWorld解説〜
- Java StepUpPrograming〜JavaFX で四則計算〜
- Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
- Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
- Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
- Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
- Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine
JavaFX + ND4Jで機械学習準備
- JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
- JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
- Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜
オブジェクト指向関連ページ
- [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
- オブジェクト指向の概念2〜クラスとは〜