バイナリタイプに問題があります。私はデータを持つバイナリファイルを持っています。すべての要素は "_"で分割されます。私は
DataInputStream in = new DataInputStream(new FileInputStream("C:/Data/"+names));
を使用しています。ここでnamesは私のバイナリファイルの名前です。このファイルを読み込んで要素を配列に保存するにはどうすればいいですか?これは可能ですか?ファイル内のJavaバイナリタイプ
-1
A
答えて
3
バイナリファイルに書き込む場合、行列の各項目を '_'で分割する必要はありません。プログラムは、各アイテムに割り当てられたバイト数を認識します。
次のコードでは、 '_'を挟まずに2つのダブルを書きます。その後、ファイルから読み込んでデータを出力します。
public class Test {
public static void main(String[] args) throws Exception {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("a.bin"));
dos.writeDouble(1.2);
dos.writeDouble(3.4);
dos.close();
DataInputStream dis = new DataInputStream(new FileInputStream("a.bin"));
System.out.println(dis.readDouble());
System.out.println(dis.readDouble());
dis.close();
}
}
プログラムの出力:
1.2
3.4
しかし、あなたはアイテム間「_」ファイルを作成し、そこではなかった場合、あなたは@としてバイナリファイルから各項目を読んだ後readChar()
を使用することができますBhaskarは既に言及した。
最後に、ObjectOutputStream
を使用すると、アレイ全体を一度に書き込むことができます。
public class Test {
public static void main(String[] args) throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.bin"));
double[] a = {1.2, 3.4};
oos.writeObject(a);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.bin"));
double[] b = (double[]) ois.readObject();
System.out.println(b[0]);
System.out.println(b[1]);
ois.close();
}
}
0
read(byte[])
またはread(byte[],ffset,length)
を使用して、ファイルの内容をバイト配列に読み込むことができます。
1
どのようにデータがそのファイルに書き込まれたかによって異なります。 DataOutputStream
のwriteXXX()
を使用して記述した場合、XXXは実際の要素のデータ型を表し、要素がwriteChar('_')
で区切られている場合は、DataInputStream
のreadXXX()
メソッドを使用して簡単に読み取ることができます。要素が書かれている正確な順序で、また-
が存在すると予想されるときはいつでも(つまり2つの要素の間に)、readChar()
を使用するようにしてください。
関連する問題
- 1. jarファイル内のJavaライブラリ
- 2. リソースフォルダ内のJava write .txtファイル
- 3. Jarファイル内のJava Jar
- 4. 単一ファイル内のサブタイプJava?
- 5. Javaファイル内のコードを使用してJavaファイルをコンパイルする
- 6. Android(Java)の別のjarファイル内のjar
- 7. Javaのファイルの内容を削除
- 8. Javaプロジェクト内の複数の.propertiesファイル
- 9. Javaアプレット内の.propertiesファイルのリスト
- 10. Javaのメモリ内ファイル構造ですか?
- 11. パッケージ内にJavaファイルを作成する
- 12. Javaでjarファイル内のxmlファイルを変更する
- 13. Javaプログラム内から.javaファイルをコンパイルしますか?
- 14. 別の.javaファイル内の他のクラスのメソッドを呼び出す
- 15. Java - 現在のJAR内のファイル名のリストを取得
- 16. JavaアプレットのJAR内のファイルのリストを取得する
- 17. Javaでのjsonファイルの内容の解析
- 18. ファイル内の任意の場所からのJavaオープンストリーム
- 19. Java Web App内の個々の動的ファイルと静的ファイルのキャッシュ設定
- 20. 1つのJavaファイル内に複数の列挙型クラス
- 21. Javaのファイルの内容を置き換える方法は?
- 22. ファイル内の特定の式を置換するJava
- 23. Javaクラス内の.cfgファイルからプロパティへのアクセス
- 24. JAVAを使用してフォルダ内の複数のファイルを読む
- 25. ファイル内のファイル数:
- 26. Java:指定したフォルダ内の.txtファイルを検索
- 27. javaを使用してファイル内のユニコード文字列を検索
- 28. Java:スレッドを一時停止し、ファイル内の位置を取得
- 29. java FileWriter、定期的にファイルの内容を削除する
- 30. jarファイル内のフォルダにJavaクラスを追加する方法
ファイルは実際にバイナリであるか、下線付きのエントリの区切り規則を使用して "エンコード"されていますか? – Chris
ファイル形式の詳細な説明はありますか? – orien
fyi「_」のASCIIコードは0x5fです –