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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/07/01 21:03:52
  • 終了:--

回答(5件)

id:ponta_3rd No.1

ponta3rd回答回数196ベストアンサー獲得回数02004/07/01 21:09:13

ポイント16pt

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

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

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

id:kunitz

ありがとうございます!

2004/07/01 21:14:09
id:h_sakurai No.2

h_sakurai回答回数9ベストアンサー獲得回数02004/07/01 21:19:45

ポイント16pt

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]);

}

}

}

id:kunitz

ありがとうございます!

2004/07/01 21:21:52
id:ozonepapa No.3

ozonepapa回答回数288ベストアンサー獲得回数02004/07/01 21:46:44

ポイント16pt

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]);

}

}

id:kunitz

ありがとうございます!

2004/07/01 23:23:09
id:shoichiro No.4

shoichiro回答回数10ベストアンサー獲得回数02004/07/02 16:49:13

ポイント16pt

そんなに大きくないファイルなら、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();

}

}

id:kunitz

ありがとうございます!

2004/07/05 04:10:37
id:last_wednesday No.5

last_wednesday回答回数17ベストアンサー獲得回数02004/07/05 04:05:34

ポイント16pt

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は読み込みを効率化するためのストリームです。

id:kunitz

ありがとうございます!

2004/07/05 04:10:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません