2014-07-08 3 views
1

BufferedReader에서 사용하는 것으로 알고있는 파일에 액세스하는 데 문제가 없습니다. "/Download/MyDir/MyFile.txt : 실패 엽니 다 ENOENT (해당 파일이나 디렉토리를) java.io.FileNotFoundException"그러나 나는 BufferedReader로 라인을 누를 때마다 내가 얻을파일을 찾을 수 없지만 실제로 존재합니다.

File file = new File(Environment.DIRECTORY_DOWNLOADS + getString(R.string.dloaded_latest_numbers_dir) + getString(R.string.dloaded_latest_numbers_file)); 
BufferedReader buffedReader = new BufferedReader(new FileReader(file)); 

: 여기에 코드입니다 파일에 대한 올바른 전체 경로를 표시

TextView displayFileLocation = (TextView) findViewById(R.id.readLocTextView); 
displayFileLocation.setText("location is: " + file.getAbsolutePath()); 

:

내가 가진 텍스트 뷰에서 파일 위치를 표시하고있다. (/Download/MyDir/MyFile.txt)

내의 AndroidManifest.xml 파일이 다음과 같은 권한 :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> 
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 

로그 캣 출력은 다음과 같습니다

07-08 13:06:28.556 15351-15351/au.com.acent.ash.basiclottochecker D/OpenGLRenderer﹕ Enabling debug mode 0 
07-08 13:06:43.451 15351-15351/au.com.acent.ash.basiclottochecker W/IInputConnectionWrapper﹕ showStatusIcon on inactive InputConnection 
07-08 13:06:57.925 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ java.io.FileNotFoundException: /Download/MyDir/MyFile.txt: open failed: ENOENT (No such file or directory) 
07-08 13:06:57.925 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:420) 
07-08 13:06:57.925 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.io.FileInputStream.<init>(FileInputStream.java:78) 
07-08 13:06:57.925 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.io.FileReader.<init>(FileReader.java:42) 
07-08 13:06:57.925 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at au.com.acent.ash.basiclottochecker.CheckerActivity.populateButton(CheckerActivity.java:64) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:525) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.view.View$1.onClick(View.java:3809) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.view.View.performClick(View.java:4421) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.view.View$PerformClick.run(View.java:17903) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:730) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:92) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.os.Looper.loop(Looper.java:213) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5225) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:525) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at dalvik.system.NativeStart.main(Native Method) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at libcore.io.Posix.open(Native Method) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:404) 
07-08 13:06:57.935 15351-15351/au.com.acent.ash.basiclottochecker W/System.err﹕ ... 17 more 

내가이 파일이 절대적으로 긍정적이고 나는 DownloadManager를 사용하여 디렉토리 위치와 정확히 같은 위치 참조를 사용하여 정확히 같은 위치에이 파일을 다운로드했다 :

File file = new File(Environment.DIRECTORY_DOWNLOADS + getString(R.string.dloaded_latest_numbers_dir)); 

내가 뭘 잘못하고있어 ?? 도와주세요!

+0

@JigarJoshi의 사용 얻으려면. – matiash

+0

@matiash 왜 그것이 중복되지 않는다고 생각합니까? –

+0

@ JigarJoshi 글쎄, 그는 그곳에 파일을 저장할 수 있다고 주장한다. 그래서 나는 그것이 유효한 길이어야한다고 생각합니다. – matiash

답변

1

코드가 /Download/MyDir/MyFile.txt에 액세스하려고합니다.이 파일은 루트 폴더에 존재하지 않으므로 올바른 위치가 아닌 것 같습니다. sdcard 디렉토리 안에있을 것입니다. 올바른 디렉토리가 (적어도 첫 번째보기에서) 동일한 문제가 될 것 같지 않습니다

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 

대신

Environment.DIRECTORY_DOWNLOADS 
+0

이제 내 파일을 /storage/emulated/0/Download/MyFile.txt로 다운로드하고 BufferedReader에 동일한 결과를 액세스하려고 할 때 : 파일을 찾을 수 없음 – Ash

+0

어떻게 다운로드하나요? 그리고 파일은 어디로 다운로드 되었습니까? –

+0

왜 그것이 원래 위치와 다른지 나는 모르겠다.둘 다 /에서 시작하고 둘 다 쓸 수 있습니다. File Commander와 같은 파일 브라우저를 사용할 때 원래 위치는 "Download"디렉토리입니다. 내가 놓친 게 있니? – Ash

관련 문제