🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

解決済

2回答

1167閲覧

java txtファイルを読み込み/出力するメソッドが実行できません

agnext

総合スコア5

Java

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

0グッド

0クリップ

投稿2019/11/30 17:34

編集2019/11/30 17:52

前提・実現したいこと

Javaで、外部の.txtデータを1行ずつ読み込み、出力するメソッドを作成したいです。
メソッド内の記述不備やmain文での呼び出し方法に間違いがありますでしょうか?

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

Error:(8, 9) java: シンボルを見つけられません シンボル: メソッド masterFileLoader() 場所: クラス issues.LoaderTest

該当のソースコード

Java

1package input; 2import java.io.BufferedReader; 3import java.io.IOException; 4import java.nio.charset.StandardCharsets; 5import java.nio.file.Files; 6import java.nio.file.Path; 7import java.nio.file.Paths; 8 9public class Loader { 10 11 public void masterFileLoader() throws IOException { 12 //マスターファイルの名称 13 final String masterFileName = "masterFile.txt"; 14 Path pathMasterFilename = Paths.get(masterFileName); 15 16 BufferedReader readMasterFile 17 = Files.newBufferedReader(pathMasterFilename, StandardCharsets.UTF_8); 18 try { 19 for (String line; (line = readMasterFile.readLine()) != null; ) { 20 System.out.println(line); 21 } 22 readMasterFile.close(); 23 }catch (IOException e) { 24 System.out.println("ERROR"); 25 System.out.println(e); 26 } 27 } 28} 29

java

1package input; 2 3public class LoaderTest{ 4 public static void main(String[] args){ 5 masterFileLoader(); 6 } 7} 8

試したこと

Main文に、masterFileLoaderメソッドの中身をコピペして実行すると、所望の動作(1行ずつtxtファイルの内容が出力される)することが確認できました。

【追記】
Loaderクラスに
public Loader(){
}
を追加し、

package input; import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Loader { //int readNum = 0; public Loader(){ } public void masterFileLoader() throws IOException { //マスターファイルの名称 final String masterFileName = "masterFile.txt"; Path pathMasterFilename = Paths.get(masterFileName); BufferedReader readMasterFile = Files.newBufferedReader (pathMasterFilename, StandardCharsets.UTF_8); for (String line; (line = readMasterFile.readLine()) != null; ) { System.out.println(line); } readMasterFile.close(); } }

main文を

public class LoaderTest{ public static void main(String[] args) throws IOException { Loader load = new Loader(); load.masterFileLoader(); } }

と変更することで、出力させることが出来ました

個人的な理想の記述方法

以下のような記述で実行できることが理想なのですが、これは可能でしょうか?
可能ならば、メソッドをどのように記述する必要がありますか?

public class LoaderTest{ public static void main(String[] args) throws IOException { masterFileLoader(); } }

補足情報(FW/ツールのバージョンなど)

IntelliJ IDEAを利用しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

LoaderTest からメソッド名のみで Loader の masterFileLoader を呼び出したいのでしたら,

・LoaderTest は Loader を継承する.
・masterFileLoader を static にする.

ことになるかと思います.

投稿2019/11/30 19:04

jimbe

総合スコア13202

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

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

0

以下、参考になるでしょうか。

java 他のクラスのメソッドを呼び出す

投稿2019/11/30 18:09

javahack

総合スコア1088

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問