ビデオ: java入門 第17回 入出力処理 2024
多くのJavaプログラムは、コンピュータのキーボードから文字を読み込みます。これらのプログラムは、Scanner、Systemなどのものを使用します。 in、nextDouble - JavaのAPIで定義されているもの。このリスティングのDoPayrollプログラムは、このストーリーに新しいスピンをもたらします。キーボードから文字を読み取る代わりに、プログラムはEmployeeInfoから文字を読み取ります。 txtファイル。このファイルは、コンピュータのハードドライブに保存されています。
import java。 util。スキャナ; import java。 io。ファイル; import java。 io。 IOException;パブリッククラスDoPayroll {public static void main(String args [])throw IOException {スキャナdiskScanner =新しいスキャナ(新しいファイル( "EmployeeInfo。txt")); for(int empNum = 1; empNum <= 3; empNum ++){payOneEmployee(diskScanner);} diskScanner。静的void payOneEmployee(スキャナaScanner){従業員anEmployee =新しい従業員();従業員。 setName(aScanner。nextLine());従業員。 setJobTitle(aScanner。nextLine());従業員。 cutCheck(aScanner。nextDouble()); aScanner。 nextLine();}}
ファイルから文字を読み込むには、キーボードから文字を読み出すのに役立つものと同じものを使用します。 Scanner、nextDoubleなどの機能を使用します。しかし、これらのグッズに加えて、あなたは飛び降りるいくつかの余分なハードルを持っています。ここにリストがあります:
-
新しいファイル オブジェクトが必要です。 より正確には、APIのFileクラスの新しいインスタンスが必要です。
new File( "EmployeeInfo。txt")
引用符で囲まれたものは、コンピュータのハードドライブ上にあるファイルの名前です。ファイルには文字が含まれています。
この時点で、用語は山を丘陵地帯から取り除いています。もちろん、新しいファイル オブジェクト と新しいファイル インスタンス は 、 と表示されますが、新しいFile( "EmployeeInfo.txt")あなたのハードドライブ上のファイル。新しいFile( "EmployeeInfo。txt")を新しいScannerに移動した後、
<! - 2 - >スキャナdiskScanner =新しいスキャナ(新しいファイル( "EmployeeInfo。txt"));
あなたは新しいファイルビジネスについてすべてを忘れることができます。コードのその時点から、diskScannerはEmployeeInfoの略です。 txtファイル名を入力してください。 (diskScannerという名前は、前の例では、キーボードは、昼と夜を押すボタンの略です)。
<!リスト内に新しいFileオブジェクトを作成することは、後で同じリストに新しいEmployeeオブジェクトを作成することに似ています。唯一の違いは、EmployeeクラスとAccountクラスがこの本の例で定義されていることです。FileクラスはJavaのAPIで定義されています。新しいScannerでディスクファイルに接続するときは、新しいFile部分を忘れないでください。新しいScanner( "EmployeeInfo。txt")を新しいFileなしで作成すると、コンパイラは気にしません。 (コードを実行する前に警告やエラーメッセージが表示されることはありません)。しかし、コードを実行すると、期待する結果のようなものは得られません。
-
File クラスはフルネームである javaを参照する必要があります。 io。ファイル 。 これは、リスト内のようなインポート宣言で行うことができます。あるいは、 Scanner diskScanner = new Scanner(new
java.io。 File( "EmployeeInfo。txt"))のようなステートメントでコードを乱雑にすることもできます。
-
throw IOException 節が必要です。 プログラムがEmployeeInfoに接続すると、多くのことがうまくいかない場合があります。 TXT。まず、ハードドライブに EmployeeInfoという名前のファイルがない可能性があります。 TXT。 もう一つは、EmployeeInfoファイルです。 txtが間違ったディレクトリにある可能性があります。このような災害に備えて、Javaプログラミング言語にはいくつかの予防措置がとられています。この言語では、ディスクファイルが含まれている場合、新しいScannerを呼び出す可能性があることを認識しています。
-
いくつかの可能な方法で危険を認めることができますが、最も簡単な方法はthrows節を使用することです。リストでは、メインメソッドのヘッダーは
throws IOExceptionという単語で終わります。 これらの2つの単語を追加することで、Javaコンパイラを緩和できます。 それは、「新しいスキャナを呼び出すと問題が発生する可能性があることを知っています。あなたは私に思い出させる必要はありません。 "そして、確かに、あなたのメインメソッドにIOExceptionをスローすると、コンパイラは不平を言わなくなります。 (このthrows節がなければ、報告されない例外エラー・メッセージが表示されます。)