안녕하세요
FileInputStream을 통해서... 파일 을 불러오고
BufferedInputStream 을 통해서 파일의 내용을 분활하려고 합니다.
pack_01.tcp 폴더안에 수많은 데이타가 있는데요..
항목이 다음과 같습니다.
시작코드1바이트 데이터코드8바이트 종료코드1바이트가 있는데
여기에 있는 바이트를 읽어서 TextView에 표시하고 싶은데요
문제는 바이트 단위를 읽는 방법이 BufferedInputStream으로 해야하는지....;;
잘모르겠습니다 ㅠ
소스는 다음과 같습니다.
try {
File folder_path = new File("/sdcard/dir");
String file_path = mSdPath + "/dir/pack_01.tcp";
FileInputStream fis = new FileInputStream(file_path);
BufferedInputStream bis = new BufferedInputStream(fis, 1024);
if (!folder_path.isDirectory()) {
folder_path.mkdirs();
}
byte[] data = new byte[fis.available()];// fis.available()
while (fis.read(data) != -1) {
string.append(" 시작코드 :" + data);
}
///////////////////여기까지는 파일내용을 뿌려줍니다.
/////////////그런데 파일에 있는 내용을 불러와서 뿌리는건 알겠는데
////////////1바이트나 5바이트 이렇게 뽑아내서 변수에 담아두려 하거든요
/////////////아래와 같이 해봤는데 숫자 4만나오고 ㅠㅠ
byte[] buffDataSize = new byte[bis.available()];
int nRecvData = bis.read(buffDataSize,0,4);
string.append(bis.read(buffDataSize,0,4));
pack_edit.setText(string);
fis.close();
// fin.close();
} catch (FileNotFoundException e) {
pack_edit.setText("팩파일을 찾을수 없습니다");
} catch (Exception e) {
// TODO Auto-generated catch block
}
결론은 SD카드에 있는 이진파일을 불러오고 뿌리는부분은 됩니다.
그안에 있는 데이타를 바이트 단위로 분활해서 변수에 저장하고싶습니다.
이진파일이 10바이트라면. 그걸 분활해서 변수a에 1바이트 변수b에 8바이트 변수c에 1바이트를 넣어주고 싶습니다
하지만 바이트를 분활해서 넣어주는 부분을 잘모르겠습니다. ㅠㅠ
http://en.wikipedia.org/wiki/Bitwise_operation