演習課題「FileOutputStreamクラス を使用してみよう」
現在、FileOutputStreamクラスのコンストラクタを使い、/home/ubuntu/java-file/files/out.txtに、kyokoという文字列を書き込もうとしています。/home/ubuntu/java-file/source/jp.paiza.file/jp/paiza/file/Test.javaにおいて、文字列を書き込むよう、FileOutputStreamクラスのコンストラクタのうち、引数にFileクラスのインスタンスをとるものを使用してコードを修正してください。また、文字列を書き込むには、文字列に対してgetBytesメソッドを適用しながら、writeメソッドを使用します。修正後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.paiza.file/jp.paiza.file.Test
演習課題「FileOutputStreamクラス を使用してみよう - その2」
現在、FileOutputStreamクラスのコンストラクタを使い、/home/ubuntu/java-file/files/out.txtに、kyokoという文字列を複数個書き込もうとしています。しかし、現在のコードでは、ファイルが上書きされてしまい 1つ しか書き込みが行えません。/home/ubuntu/java-file/source/jp.paiza.file/jp/paiza/file/Test.javaにおいて、ファイルの最後に文字列を書き込むよう、FileOutputStreamクラスのコンストラクタで、2つ目 の引数を指定してコードを修正してください。修正後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.paiza.file/jp.paiza.file.Test
演習課題「FileInputStreamクラス を使用してみよう」
現在、FileInputStreamクラスのコンストラクタを使い、/home/ubuntu/java-file/files/out.txtに記述されているrioという文字列を読み込んで、文字コードとして出力しようとしています。/home/ubuntu/java-file/source/jp.paiza.file/jp/paiza/file/Test.javaにおいて、文字列を読み込むよう、FileInputStreamクラスのコンストラクタのうち、引数にFileクラスのインスタンスをとるものを使用して、読み込んだ文字列が文字コードとして出力されるようコードを修正してください。
加えて、readメソッドによるバイト単位でデータの受け取りを指定するよう while文 に追記してください。その際、繰り返しの終了条件として、ストリームの終わりに達した際に与えられる戻り値である -1 を指定するよう修正してください。
修正後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.paiza.file/jp.paiza.file.Test
期待する出力値
Test
114105111
演習課題「DataOutputStreamクラス を使用してみよう」
現在、DataOutputStreamクラスのコンストラクタを使い、/home/ubuntu/java-file/files/out.txtに、falseというBoolean型の値とtsubameというString型の値を書き込もうとしています。しかし、現在のコードではコンパイル時にエラーが発生してしまいます。/home/ubuntu/java-file/source/jp.paiza.file/jp/paiza/file/Test.javaにおいて、DataOutputStreamクラスのコンストラクタを使いながら、writeBooleanメソッドにより、falseを 1バイト値 として書き込む処理と、writeUTFメソッドにより、tsubameを環境に依存しない形の文字列として書き込む処理を記述し、コードを修正してください。
修正後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.paiza.file/jp.paiza.file.Test
期待する出力値
Test
0071161151179897109101
演習課題「DataInputStreamクラス を使用してみよう」
現在、DataOutputStreamクラスのコンストラクタを使い、/home/ubuntu/java-file/files/out.txtにfalseというBoolean型の値とtsubameというString型の値を書き込み、それぞれfalse、tsubameとして出力しようとしています。しかし、現在のコードではコンパイル時にエラーが発生してしまいます。/home/ubuntu/java-file/source/jp.paiza.file/jp/paiza/file/Test.javaにおいて、DataInputStreamクラスのコンストラクタを使いながら、DataOutputStreamによって書き込まれたデータを読み込み、文字列を出力するようコードを修正してください。修正後、コンパイルと実行を行い結果を確認してください。
なお、コンパイルコマンドについて理解できていれば、以下のコンパイルコマンドをコピーして利用してください。
$ javac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
また、実行コマンドについて理解できていれば、以下の実行コマンドをコピーして利用してください。
$ java -p classes --module jp.paiza.file/jp.paiza.file.Test
期待する出力値
Test
false
tsubame
#05:バイトストリーム
このチャプターでは、バイトストリームについて学習します。
クラスInputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/InputStream.html
クラスOutputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/OutputStream.html
クラスFileInputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/FileInputStream.html
クラスFileOutputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/FileOutputStream.html
クラスDataInputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/DataInputStream.html
クラスDataOutputStream
https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/io/DataOutputStream.html
コンパイルjavac -d classes/jp.paiza.file -p classes source/jp.paiza.file/module-info.java source/jp.paiza.file/jp/paiza/file/*.java
実行java -p classes --module jp.paiza.file/jp.paiza.file.A
File f = new File("/home/ubuntu/java-file/files", "out.txt");
try (DataOutputStream o = new DataOutputStream(new FileOutputStream(f))) {
    o.writeBoolean(true);
    o.writeUTF("abc");
} catch (IOException e) {
    e.printStackTrace();
}
try (DataInputStream i = new DataInputStream(new FileInputStream(f))) {
    System.out.println(i.readBoolean());
    System.out.println(i.readUTF());
} catch (IOException e) {
    e.printStackTrace();
}