안녕하세요.
저는 오디오 데이터를 fileinputstream, datainputstream을 이용하여 데이터를 arraylist에 넣은후 제가 원하는 신호 처리를 해주고 나서 fileoutputstream, dataoutputstream를 이용하여 신호처리된 arraylist를 파일로 저장해주고 있는데 파일에 접근해서 데이터를 불러오거나 저장하는데에서 속도가 너무 오래 걸립니다. 2초 짜리를 불러 오는데 약 5초 정도 걸리는거 같아요. 더 빠른 file i/o방법이 없을까요??
private void fileread(DataInputStream IN, ArrayList<Short> DATA){
for(int i=0;;i++){
Log.d("TAG", "Reading"+i);
try {
DATA.add(IN.readShort());
} catch (EOFException e) {
// TODO Auto-generated catch block
e.printStackTrace();
break;
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void filewrite(DataOutputStream OUT, ArrayList<Short> DATA){
for(int i=0;;i++){
Log.d("TAG", "Saving"+i);
try {
OUT.writeShort(DATA.get(i));
} catch (IndexOutOfBoundsException e) {
// TODO Auto-generated catch block
e.printStackTrace();
break;
} catch (IOException e) {
e.printStackTrace();
}
}
}
파일에서 데이터를 읽어오는 과정과 데이터를 파일에 써주는 과정을 위한 코드 입니다.