プロジェクト の Java スキルツリー

重複ファイルを見つける

読み取り専用の Java 重複検出器を作り、実際のバイトで一致を確認し、すべての原本を保ちながら完全なパスグループを保存します。

プロジェクトJava

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

重複ファイルを見つけるは、実際のファイル内容を扱いたい学習者向けの Java 実践プロジェクトです。すべての元のパスを保ちながら、内容が等しいファイルを完全なグループとして見つける、再利用可能な読み取り専用チェッカーを作ります。名前が異なってもバイトが同じ場合があり、名前やサイズが同じでも内容が異なる場合があります。

コースは 2 個のガイド付きラボと 1 個のチャレンジで構成されています。まずバイナリストリームを読み、全パスの一覧を保存します。次にサイズと SHA-256 の指紋で候補を絞り、実際のバイト比較で一致を確認して、練習用コピーの変更後にレポートを作り直します。チャレンジでは同じ仕組みを別の資料フォルダに適用します。各ラボは独立して開始します。約 150 分を見込んでください。これは読解と通常の修正を含む作者の見積もりです。

学習内容

このコースを修了すると、次のことができるようになります。

  • try-with-resources でバイナリファイルを読み、各読み取りで実際に返された長さを使う。
  • 候補用の SHA-256 指紋を計算し、空ファイルや最後の部分的なバッファも含めてすべてのパスを記録する。
  • 名前、サイズ、ダイジェストを証明とせず、実際のバイトを比較して一致を確認する。
  • 3 個以上のグループも含めて重複グループの全メンバーを残し、単独ファイルは除外する。
  • 練習用ファイルの変更後に最新内容のレポートを作り直し、元のファイルをすべて保つ。
  • スキャン対象のツリー外にレポートを書き、読み取れない入力や未対応の入力を失敗として報告する。

このコースの対象者

このコースは、標準ライブラリのファイル処理、コレクション、例外を実用的なターミナルプログラムで組み合わせたい Java 学習者を対象としています。

前提知識: Java のクラス、メソッド、基本的なコレクション、例外、初歩的なファイル読み取り、ターミナルでの基本的な移動操作。コミュニティ工具貸出所を管理する、特に 2 番目のガイド付きラボでファイル読み取りと I/O 例外の基礎を学べます。同等の知識でも構いません。本コースではバイナリストリーム、読み取り数、リソースの終了処理、候補とバイト比較の違いを使用前に説明します。

学習環境: LabEx はブラウザの WebIDE に統合ターミナル、Java コンパイラ、開始用コード、小さな PNG 画像を含む実際のサンプルファイルを用意します。ローカルに Java をインストールせず、プログラムの実行とファイルの確認ができます。コマンド、ラベル、出力は英語のままです。

よくある質問

プログラムは重複ファイルを削除しますか?

いいえ。成果物はチェッカーと、確認に使う完全なグループレポートです。すべての原本を保ちます。自動削除、修復、ディスクの整理は対象外です。

指紋を計算した後もバイトを比較するのはなぜですか?

サイズと SHA-256 は候補を選ぶために使います。最終判断は実際の内容比較によるため、一致するすべてのパスを残し、同じサイズでも内容が異なるファイルを分けられます。このコースではダイジェストを一致の数学的証明として扱いません。

どの入力に対応しますか?

実行中に変化しない通常のファイルとディレクトリに対応し、空白や UTF-8 のファイル名も扱います。シンボリックリンク、特殊ファイル、タブや改行を含むパスは拒否します。読み取り失敗を完全なスキャン成功として扱ってはいけません。レポートは入力ツリーの外に置きます。各ラボは独自のデータを持ち、以前の VM のファイルは不要です。同時更新中のスナップショット保証は提供しません。

講師

labby
Labby
Labby is the LabEx teacher.

おすすめ

no data