2015-01-08 3 views
4

덮어 쓰지 않도록 파일 위치를 확인하려고합니다. 이 목적을 위해 FileChannel과 함께 사용할 수있는 position() 메서드가 있으므로 FileInputStream을 사용해야합니다. BufferedReader은 위치를 유지하지 않습니다.FileInputStream을 통해 파일을 가져 오지 못합니까?

내 코드는 다음과 같습니다

FileChannel fc = null; 
FileInputStream fis = null;  
int i=0; 
long pos; 
char c; 
fis = new FileInputStream("File.txt"); 
    while((i=fis.read())!=-1) 
         { 
          fc = fis.getChannel(); 
          pos = fc.position(); 
          c = (char)i; 
          System.out.print("No of bytes read: "+pos); 
          System.out.println("; Char read: "+c); 
         } 

내가 java.io.FileNotFoundException 무엇입니까 :

/doneQuestionDetail.txt: open failed: ENOENT (No such file or directory)

이 오류는이 파일이 exsist하지 않기 때문에 위치에서 파일을 받고되지 않음을 의미 내가 BufferedReader를 사용하는 경우 :

BufferedReader inputReader = new BufferedReader(
            new InputStreamReader(openFileInput("File.txt"))); 

이 줄에는 오류가 없습니다. aning 파일이 있고 FileInputStream 파일을 가져 오지 못했습니다. 귀하의 제안에 대한

java.io.FileNotFoundException: /mnt/sdcard/imotax/File.txt: open failed: ENOENT (No such file or directory)

희망 : 나는 오류를 얻고 자

String extr = Environment.getExternalStorageDirectory().toString(); 
          File mFolder = new File(extr + "/imotax"); 
          String s = "doneQuestionDetail.txt"; 
          File f = new File(mFolder.getAbsolutePath(), s); 
          fis = new FileInputStream(f); 

: 같은

검색 한 후 처음 위치를 확인하고 FileInputStream에게주고있어, 그럼 내가 코드를 변경 . 감사.

답변

1

다음 코드를 사용해보십시오.

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdCard.getAbsolutePath() + File.separator 
         + "/imotax"); 
dir.mkdirs(); 
File f= new File(dir, fileToCreate); 
if(!f.exists()){ 
f.createNewFile(); 
} 

fis = new FileInputStream(f); 
관련 문제