0

私は BufferedWriter を使用して、Netbeans のコード ジェネレーター フレームワークの一部としてさまざまなファイルにテキストを書き込んでいました。テスト用のメイン クラスを実行したとき、以前のパッケージでテストに関与したすべてのクラスのファイルを見つけることができませんでした。むしろ、それらはデフォルトのパッケージに含まれており、ファイルを開いたときに、通常のテキストを表示できませんでした。上部に 1 本の長い水平線が表示され、エラーが表示されたフォーマット済みウィンドウのみが表示されます。"不正な文字 \0".

ファイルのサイズはそれぞれのテキストと同じですが、問題はテキストの形式だけだと思います.ローカルヒストリー>リバース削除を使用して、変更を取得しませんでした. このpbmを解決する方法を知っている人はいますか? 私が使用したコードは次のとおりです。コード内で out.write("some text here") という呼び出しを何度も使用して、gen. コードを出力ファイルに追加します。

    BufferedWriter out = new BufferedWriter(new FileWriter("MyClass.java"));
4

1 に答える 1

3

はい、16 進数対応のものを試してみましたが、まだ空のウィンドウが表示されます。

\000その文字を除いて、ファイルは実際には空である可能性があるようです。つまり、それらを完全に破棄しました。これは、オペレーティング システムによって報告されたファイル サイズを調べることで確認できます。

ファイルを破棄した場合、NetBeans が古い内容を取り戻す可能性はほとんどありません。バージョン管理 (SVN、GIT、使用しているものは何でも) またはファイル システムのバックアップから最新バージョンのファイルを復元する必要があります。それでもうまくいかない場合は、ファイル回復ツールを使用して回復できるかもしれませんが、私はそれを疑っています.


教訓は、コード ジェネレーターを使用してソース ファイルを更新する前に、ソース ファイルが安全にバージョン管理またはバックアップされていることを確認することです。

于 2011-07-23T04:23:45.517 に答える