問題タブ [getresource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
691 参照

java - jar ファイル内のバイト配列を使用してサウンドをキャッシュする

タグ wiki ページの「Playing a Clip」ソリューションを使用して、サウンドを読み取って再生できます。ただし、頻繁に再生されるサウンド (たとえば、レーザー ガンの素早い音、足音など) の場合、新しい. そのため、読み取りファイルをにキャッシュし、その後キャッシュからロードしようとしています。Clipbyte[]

ロード部分は簡単です:

ただし、最初にファイルの内容をバイト配列に取得することは困難であることがわかっています。問題は、.jarに含まれるファイルからサウンドを読み込もうとしていることです。そのため、(私が理解しているように) 使用java.io.Fileはオプションではなく、私が見たさまざまな解決策 (以下のリンク) は適用されません。

を使用せずにバイト配列を作成するためにファイルの長さを取得するのが最も難しいと思われますjava.io.File。でバイトを読み取ることができますが、Scannerそれらを何らかの配列に読み取る必要があります。私はちょうど使用する必要がありますArrayList<Byte>か?(以下の「次善の例」を参照してください。)

それで、私の質問:後で繰り返しアクセスするために、埋め込みファイルを に読み込む最良の方法は何ですか?byte[]

制限事項

  • jarfile 内のファイルにアクセスできる必要があります。私はこれが私をClass.getResourceまたはに制限すると信じていますClass.getResourceAsStream
  • byte[]ファイルのバイトは、標準変数に格納する必要があります。
  • Guava や Apache Commons などの不要な依存関係を導入せずにこれを行うことをお勧めします。これまでのところ、私のプロジェクト全体はバニラ Java (JDK6) であり、そのままにしておきたいと思っています。

私は何を試しましたか?

私はRandomAccessFile次のように使用してみました:

ただし、明らかにこれはディスク参照ファイルに対してのみ機能します。次のエラーが表示されます。

java.io.FileNotFoundException: \path\to\sound\in\jar\file.wav (指定されたパスが見つかりません)

次善の例

この例は機能ArrayListしますが、一定のサイズ変更などのため、これを行うための最良の方法ではないと思います.

前の読書

0 投票する
1 に答える
5339 参照

java - src ディレクトリに Java リソースを書き込む

Java と Eclipse を IDE として使用して (タイル) レベルのエディターを作成しています。getResourceAsStream を使用してタイルマップをロードしています。そして、このコードはマップを書き戻します。

それは正常に動作しますが、問題は、bin/ と src/ の 2 つのディレクトリがあることです。ディレクトリ bin/ は Eclipse によって生成されます。だから私はsrcディレクトリのファイルを編集したい. 残念ながら、getResource() は bin/ ディレクトリで動作します。さらに、プロジェクトを再構築すると、マップ上のすべての変更が削除されます。だから私は src/ フォルダーのタイルマップを編集したいだけです。どうすればそれを達成できますか?

一部の絶対パスをハードコーディングすることは避けたいと思います。

0 投票する
2 に答える
1667 参照

java - getResources().getString() が私のクラスに定義されていません

これが私のres/values-es/strings.xmlファイルの文字列です:

Javaコードで使用する場所は次のとおりです。

それは私にこのエラーを与えています:

WhereQuizは、Java コードが存在するクラスの名前です。メソッドの他のすべてのサンプルコードは、getResources()問題なく同じ方法で使用しているようです。私の実装が機能していないのは何ですか?

編集

0 投票する
2 に答える
2140 参照

java - getResources().getColor がカスタム ビューで機能しない

カスタム ビューを作成しましたが、そこからカスタム定義の色にアクセスできないようです。私のアプリ全体は、次の 3 つのファイルで構成されています

res/values フォルダーにある colors.xml:

TestView.java:

および MainActivity.java:

私が得るのは、黒いはずの空白の白い画面だけです! 私はこれを約2日間続けて引き起こしている可能性があるものを理解しようとしてきましたが、言うまでもなく、うまくいかなかった多くのことを試しました. 誰かがこれで私を助けることができれば、私は非常に感謝しています.

ありがとう!