마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파일에서 데이터를 불러오고 데이터를 처리한후 파일에 저장하는게 너무 오래 걸립니다.

0 추천
안녕하세요.

저는 오디오 데이터를 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();
            }
        }
        
    }

파일에서 데이터를 읽어오는 과정과 데이터를 파일에 써주는 과정을 위한 코드 입니다.
익명사용자 님이 2016년 7월 28일 질문

1개의 답변

0 추천
일반적으로 네트워크 I/O할때 제일 효율적이었던 방법이 Buffered(Input/Output)Stream인데

파일 I/O에서도 이걸로 활용해보시기 바랍니다.

 

그리고 위에 올려주신 함수를 사용하는 부분의 코드까지 올려주셔야 확인이 가능한 부분입니다.
Development Guy (70,570 포인트) 님이 2016년 8월 2일 답변
...