Javaバッファフロー&変換フローの練習問題の答え
基礎問題
練習1:効率的なバイト出力ストリームはバイトデータを書き出します
説明:効率的なバイト出力ストリームを用いてCディスクの下のd.txtファイルに1バイト数を出力します.回答操作手順:1.バイト出力ストリームオブジェクト関連ファイルパス2を作成する.バイト出力ストリームオブジェクトを用いる効率的なバイト出力ストリームオブジェクト3を作成する.効率的なバイト出力ストリームオブジェクトを呼び出すwriteメソッドは1バイト4を書く.効率的なストリームを閉じ、リソースを解放します.コード:
練習2:効率的なバイト出力ストリームはバイト配列データを書き出します
説明:効率的なバイト出力を利用してCディスクの下のe.txtファイルにバイト配列データを書き出します.例えば、「i love java」の答え操作手順:1.バイト出力ストリームオブジェクト関連ファイルパス2を作成する.バイト出力ストリームオブジェクトを用いる効率的なバイト出力ストリームオブジェクト3を作成する.文字列を定義して、出力するデータを格納し、文字列をバイト配列に変換します.4.効率的なバイト出力ストリームオブジェクトのwriteメソッドを呼び出してバイト配列を出力します.5.効率的なフローをオフにします.コード:
練習3:効率的なストリームファイルのコピー
説明:効率的なバイト入力ストリームと効率的なバイト出力ストリームを使用してファイルのコピーを完了します.要求:1.Cディスク下のc.pngファイルをDディスク下2にコピーする.1バイト配列を1回読み書きでコピーする手順:1.バイト入力ストリームオブジェクトを作成し、ファイルパス2を関連付ける.バイト入力ストリームオブジェクトを用いる効率的なバイト入力ストリームオブジェクト3を作成する.バイト出力ストリームオブジェクトを作成し、ファイルパス4を関連付ける.バイト出力ストリームオブジェクトを用いて効率的なバイト出力ストリームオブジェクト5を作成する.読み出しを格納ためのバイト配列を作成するバイト数6.高効率バイト入力ストリームを用いてファイルデータをループ読み出し、1バイト配列を読み出すごとに、高効率バイト出力ストリームオブジェクトを用いてバイト配列の内容をターゲットファイルに出力する.ファイルの最後まで読み込みます.7.効率的なストリームオブジェクトコードをオフにします.
練習4:効率的な文字ストリームと集合の総合的な使用
説明:以下の需要を分析し、コードで検証コードウィジェットを実現し、以下のように要求する.プロジェクトルートディレクトリの下に新しいファイルを作成します:data.txt,キーボードは3つの文字列検証コードを入力dataに格納.txtでは、1つの検証コードが1行を占めることが要求される.2.キーボードは、入力認証コードがdataである場合、検証する必要がある認証コードを入力する.txtに存在する:コンソールプロンプト検証に成功し、コンソールプロンプト検証に失敗した答えコードが存在しない場合
練習5:変換出力ストリームの使用
説明:既存の文字列:“Javaが好きです”.この文字列を現在のプロジェクトルートディレクトリのa.txtファイルに保存します.要求:gbk符号化で保存する.注意:ideaのデフォルト符号化はutf-8なので、filesettingsfile encodingsでgbk形式に設定できます.そうしないと、a.txtファイルを開くと文字化けして表示されます.回答操作手順:1.ファイルバイト出力ストリーム関連ターゲットファイル2を作成する.ファイルバイト出力ストリームに基づいて変換出力ストリームオブジェクトを作成し、符号化文字セットをgbk 3と指定する.ストリームオブジェクトを呼び出す方法は、文字列をファイルに書き出します.4.ストリームをシャットダウンし、リソースを解放します.コード:
練習6:変換入力フローの使用
説明:変換入力ストリームを使用して、現在のプロジェクトルートディレクトリの下でgbkで符号化されたa.txtファイルの内容を読み出し、コンソールに印刷します.要求:文字化けしてはいけません.回答操作手順:1.バイト入力ストリームオブジェクトを作成してファイルパスを指定します.2.バイト入力ストリームオブジェクトから変換入力ストリームオブジェクトを作成し、文字セットの符号化をgbk 3と指定する.変換入力ストリームオブジェクトの読み出し方法を呼び出してコンテンツ4を読み出す.ストリームを閉じてリソースコードを解放するには、次の手順に従います.
練習1:効率的なバイト出力ストリームはバイトデータを書き出します
説明:効率的なバイト出力ストリームを用いてCディスクの下のd.txtファイルに1バイト数を出力します.回答操作手順:1.バイト出力ストリームオブジェクト関連ファイルパス2を作成する.バイト出力ストリームオブジェクトを用いる効率的なバイト出力ストリームオブジェクト3を作成する.効率的なバイト出力ストリームオブジェクトを呼び出すwriteメソッドは1バイト4を書く.効率的なストリームを閉じ、リソースを解放します.コード:
public class Test01_01 {
public static void main(String[] args) throws IOException {
// FileOutputStream 。
FileOutputStream fos = new FileOutputStream("c:\\d.txt");
//
BufferedOutputStream bos = new BufferedOutputStream(fos);
// write(int byte)
bos.write(97);
//
bos.close();
}
}
練習2:効率的なバイト出力ストリームはバイト配列データを書き出します
説明:効率的なバイト出力を利用してCディスクの下のe.txtファイルにバイト配列データを書き出します.例えば、「i love java」の答え操作手順:1.バイト出力ストリームオブジェクト関連ファイルパス2を作成する.バイト出力ストリームオブジェクトを用いる効率的なバイト出力ストリームオブジェクト3を作成する.文字列を定義して、出力するデータを格納し、文字列をバイト配列に変換します.4.効率的なバイト出力ストリームオブジェクトのwriteメソッドを呼び出してバイト配列を出力します.5.効率的なフローをオフにします.コード:
public class Test01_02 {
public static void main(String[] args) throws IOException {
// FileOutputStream 。
FileOutputStream fos = new FileOutputStream("c:\\e.txt");
//
BufferedOutputStream bos = new BufferedOutputStream(fos);
// write(byte[] buff)
bos.write("i love java".getBytes());
//
bos.close();
}
}
練習3:効率的なストリームファイルのコピー
説明:効率的なバイト入力ストリームと効率的なバイト出力ストリームを使用してファイルのコピーを完了します.要求:1.Cディスク下のc.pngファイルをDディスク下2にコピーする.1バイト配列を1回読み書きでコピーする手順:1.バイト入力ストリームオブジェクトを作成し、ファイルパス2を関連付ける.バイト入力ストリームオブジェクトを用いる効率的なバイト入力ストリームオブジェクト3を作成する.バイト出力ストリームオブジェクトを作成し、ファイルパス4を関連付ける.バイト出力ストリームオブジェクトを用いて効率的なバイト出力ストリームオブジェクト5を作成する.読み出しを格納ためのバイト配列を作成するバイト数6.高効率バイト入力ストリームを用いてファイルデータをループ読み出し、1バイト配列を読み出すごとに、高効率バイト出力ストリームオブジェクトを用いてバイト配列の内容をターゲットファイルに出力する.ファイルの最後まで読み込みます.7.効率的なストリームオブジェクトコードをオフにします.
public class Test01_03 {
public static void main(String[] args) throws IOException{
//
FileInputStream fis = new FileInputStream("c:\\c.png");
//
BufferedInputStream bis = new BufferedInputStream(fis);
// 。
FileOutputStream fos = new FileOutputStream("d:\\c.png");
//
BufferedOutputStream bos = new BufferedOutputStream(fos);
//
byte[] buffer = new byte[1024];
//
int len = -1;
//
while((len = bis.read(buffer)) != -1) {
//
bos.write(buffer,0,len);
}
//
bis.close();
bos.close();
}
}
練習4:効率的な文字ストリームと集合の総合的な使用
説明:以下の需要を分析し、コードで検証コードウィジェットを実現し、以下のように要求する.プロジェクトルートディレクトリの下に新しいファイルを作成します:data.txt,キーボードは3つの文字列検証コードを入力dataに格納.txtでは、1つの検証コードが1行を占めることが要求される.2.キーボードは、入力認証コードがdataである場合、検証する必要がある認証コードを入力する.txtに存在する:コンソールプロンプト検証に成功し、コンソールプロンプト検証に失敗した答えコードが存在しない場合
public class Test01_04 {
public static void main(String[] args) throws Exception {
// 3 data.txt
writeString2File();
//
verifyCode();
}
/**
*
* @throws Exception
*/
private static void verifyCode() throws Exception {
// ArrayList , 3
ArrayListlist = new ArrayList<>();
// , data.txt
BufferedReader br = new BufferedReader(new FileReader(new File("data.txt")));
String line = null;
//
while(null!=(line = br.readLine())) {
// list
list.add(line);
}
//
br.close();
//
Scanner sc = new Scanner(System.in);
//
System.out.println(" ");
String code = sc.nextLine();
if(list.contains(code)) {
System.out.println(" ");
} else {
System.out.println(" ");
}
}
/**
* 3 data.txt
* @throws Exception
*/
private staticvoid writeString2File() throws Exception {
// data.txt
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("data.txt")));
String line = null;
//
Scanner sc = new Scanner(System.in);
for(inti = 0;i<3;i++) {
System.out.println(" "+(i+1)+" ");
//
line = sc.nextLine();
//
bw.write(line);
//
bw.newLine();
}
//
bw.close();
}
}
練習5:変換出力ストリームの使用
説明:既存の文字列:“Javaが好きです”.この文字列を現在のプロジェクトルートディレクトリのa.txtファイルに保存します.要求:gbk符号化で保存する.注意:ideaのデフォルト符号化はutf-8なので、filesettingsfile encodingsでgbk形式に設定できます.そうしないと、a.txtファイルを開くと文字化けして表示されます.回答操作手順:1.ファイルバイト出力ストリーム関連ターゲットファイル2を作成する.ファイルバイト出力ストリームに基づいて変換出力ストリームオブジェクトを作成し、符号化文字セットをgbk 3と指定する.ストリームオブジェクトを呼び出す方法は、文字列をファイルに書き出します.4.ストリームをシャットダウンし、リソースを解放します.コード:
public class Test01_05 {
public static void main(String[] args) throws IOException{
//
String content = " Java";
//
FileOutputStream fos = new FileOutputStream("a.txt");
//
OutputStreamWriter osw = new OutputStreamWriter(fos, "gbk");
//
osw.write(content);
//
osw.close();
}
}
練習6:変換入力フローの使用
説明:変換入力ストリームを使用して、現在のプロジェクトルートディレクトリの下でgbkで符号化されたa.txtファイルの内容を読み出し、コンソールに印刷します.要求:文字化けしてはいけません.回答操作手順:1.バイト入力ストリームオブジェクトを作成してファイルパスを指定します.2.バイト入力ストリームオブジェクトから変換入力ストリームオブジェクトを作成し、文字セットの符号化をgbk 3と指定する.変換入力ストリームオブジェクトの読み出し方法を呼び出してコンテンツ4を読み出す.ストリームを閉じてリソースコードを解放するには、次の手順に従います.
public class Test01_06 {
public static void main(String[] args) throws IOException{
//
FileInputStream fis = new FileInputStream("a.txt");
//
InputStreamReader isr = new InputStreamReader(fis,"gbk");
//
char[] buffer = newchar[1024];
//
intlen = -1;
while((len = isr.read(buffer)) != -1) {
System.out.print(new String(buffer,0,len));
}
//
isr.close();
}
}