<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>第12, 13講 応用２ on 2024年度 発展プログラミング演習（春学期）</title>
    <link>https://ksuap.github.io/2024spring/lesson12/index.html</link>
    <description>Recent content in 第12, 13講 応用２ on 2024年度 発展プログラミング演習（春学期）</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <atom:link href="https://ksuap.github.io/2024spring/lesson12/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>cpコマンドの実装</title>
      <link>https://ksuap.github.io/2024spring/lesson12/copy/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson12/copy/index.html</guid>
      <description>ファイルをコピーする ヒント 実行例 参考 複数ファイルをディレクトリへコピーする ヒント 実行例 参考 オプション解析を行う ヒント1. オプション解析 ヒント2. オプション解析とヘルプの表示 ヒント3. verboseオプションが指定された場合の処理 実行例 参考 ファイルの上書きを確認する ヒント 実行例 参考 出力先のファイルが新しい場合はコピーしない ヒント 実行例 参考 ディレクトリを再帰的にコピーする ヒント 実行例 参考 1. ファイルをコピーする． UNIXのcpコマンドのように，java Copy1 from_file to_file を 実行すると，from_fileの内容がto_fileにコピーされるようなコマンドCopy1を 作成してください．to_fileが存在している場合は上書きしてください （単純にFileWriterで書き込むと上書きすることになります）．
コマンドライン引数に必要な数のファイルが指定されない場合，エラーメッセージを出力しましょう． コマンドライン引数で指定されたものは，ファイルであるとしても構いません．
ヒント // 必要な import 文を書いてください． public class Copy1{ void run(String[] args) throws IOException{ // コマンドライン引数に必要な分のファイルが指定されているか確認する． // args.lengthが2より小さい場合，必要な引数が指定されていない旨を出力して終了する． // argsの0番目，1番目の要素からそれぞれFile型の実体を作成する． // copyメソッドを呼び出す． } void copy(File from, File to) throws IOException{ // fromをBufferedReader(FileReader)で開く． // toをPrintWriter(FileWriter)で開く． // fromから読み込んだ内容をtoに書き出す． // ファイルの終わりまでこの処理を繰り返す． // from, to から開いたストリームを閉じる． } // mainメソッドは省略． }実行例 $ echo &amp;#39;abcdef&amp;#39; &amp;gt; file1 # file1 を作成する． $ ls file2 # file2 が存在しないことを確認する． ls: file2: No such file or directory $ java Copy1 file1 file2 # file1 を file2 にコピーする． $ cat file2 # file2 と file1 の内容が同じであることを確認する． abcdef $ java Copy1 # コマンドライン引数がない場合にエラーを出して終了する． cp: コマンドライン引数には，少なくとも，コピー元，コピー先を指定する必要があります． $ java Copy1 file2 # コマンドライン引数が足りない場合にエラーを出して終了する． cp: コマンドライン引数には，少なくとも，コピー元，コピー先を指定する必要があります．参考 コマンドライン引数 例外機構（Exception Architecture） InterruptedExceptionの責任転嫁 throws 節 ファイルの入出力 ストリーム（Stream） ラッピング（Wrapping） 典型的なファイルからのデータの読み込み方法 典型的なファイルへのデータの書き込み方法． 2.</description>
    </item>
  </channel>
</rss>