人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

j2seでファイルの中身をbyte配列(byte[])に丸ごと入れる方法を教えてください。

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:byte J2SE ファイル 配列
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● ponta3rd
●16ポイント

http://www.sm.rim.or.jp/~shishido/ftest.html

ファイル読み込みテスト-FileInputStream-

こちらに記載の方法で取得ができます。

◎質問者からの返答

ありがとうございます!


2 ● h_sakurai
●16ポイント

http://www.hellohiro.com/fileio.htm

JavaでHello World ファイル入出力編

文字列としての読み込みですが、ファイルから入力が参考になると思います。

//t.java

import java.io.*;

public class t {

public static void main(String[] args) {

byte[] b=new byte[1];

try {

FileInputStream fis = new FileInputStream(”t.java”);

ByteArrayOutputStream bo = new ByteArrayOutputStream();

while(fis.read(b)>0){

bo.write(b);

}

bo.close();

fis.close();

b = bo.toByteArray();

} catch (Exception e) {

e.printStackTrace();

}

for(int i=0;i<b.length;i++){

System.out.println(b[i]);

}

}

}

◎質問者からの返答

ありがとうございます!


3 ● ozonepapa
●16ポイント

http://www.abc.com/

ABC.com

URLはダミーです。

以下が、サンプルプログラムです。

実行すると、カレントディレクトリの

FileToByte.javaを読みます。

FileToByte.javaで保存してください。

import java.io.*;

public class FileToByte {

public static void main(String args[]) throws Exception {

byte b[] = new byte[(int)((new File(”FileToByte.java”)).length())];

FileInputStream fis = new FileInputStream(”FileToByte.java”);

fis.read(b);

fis.close();

for ( int i = 0; i < b.length; i++ )

System.out.print((char)b[i]);

}

}

◎質問者からの返答

ありがとうございます!


4 ● shoichiro
●16ポイント

http://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/NewIO/F...

そんなに大きくないファイルなら、FileChannelで一気に読んでやるのがお勧めです。速いっすよ。

import java.io.FileInputStream;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

public class GetBytesTest{

public static void main(String[] args) throws Exception{

FileInputStream inStream = new FileInputStream(”filename”);

FileChannel channel = inStream.getChannel();

ByteBuffer buffer = ByteBuffer.allocate((int)channel.size());

channel.read(buffer);

buffer.clear();

byte[] bytes = new byte[buffer.capacity()];

buffer.get(bytes);

channel.close();

}

}

◎質問者からの返答

ありがとうございます!


5 ● last_wednesday
●16ポイント

http://java.sun.com/

Java Technology

URLはダミーです。

既出の回答で十分かとも思いましたが、書いてみることにします。少しでも参考にしていただけたらいいと思います。

ファイル先頭で、java.ioパッケージのインポートが必要です。(import java.io.*;)

File f = new File(”ファイルのパス”);//読み込み元のファイル

byte[] data = new byte[(int)f.length()];//読み込み先の配列(ファイルと同じ長さに)

try{

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));//ストリームを作成

bis.read(data);//配列の長さだけ読み込み

bis.close();//ストリームを閉じる

}

catch(IOException ex){//read(),close()メソッドが投げる可能性あり

}

BufferedInputStreamは読み込みを効率化するためのストリームです。

◎質問者からの返答

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ