演習課題「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();
}