2017-03-19 1 views
0

할당을 위해 사용자 정의 파일 형식을 저장 한 다음 다시 읽을 수 있어야합니다. 필자는 FileInputStream 클래스를 사용하여 myInStream.read()를 사용하여 파일에서 필요한 모든 정보를 얻을 수 있다고 생각했습니다. 그러나 FileInputStream에 파일을 가져 오는 데 문제가 발생했습니다. URI를 가져올 수 있었지만 URI를 가져 오는 데 사용한 메서드가 File 클래스와 호환되지 않는 URI 유형을 만드는 것처럼 보입니다. 내가 읽기 시작 직전에) 내하여 onActivityResult (에 다음 코드를 가지고 :FileInputStream에 URI 넣기

Uri pickedFile = data.getData(); 
    File myFile = new File(pickedFile); 
    FileInputStream inStream = new FileInputStream(myFile); 

을 두 번째 줄에이 '생성자'파일 (android.net.Uri)를 '확인할 수 없습니다 "라고, 그래서 나는 있으리라 믿고있어 URI를 다른 형식으로 변환해야하지만 필자는 그것에 대해 어떻게 해야할지 잘 모릅니다. 어떤 도움을 많이 주시면 감사하겠습니다!

편집 : 나중에 참조 할 고정 코드는 다음과 같습니다. Uri pickedFile = data.getData(); InputStream inStream = getContentResolver(). openInputStream (pickedFile);

답변

0

내가 다른 형식

아니요 Uri에 URI를 변환하는 데 필요한 가정하고있어, 같은 https://stackoverflow.com/questions/42893406/putting-a-uri-into-a-fileinputstream 일부 콘텐츠에 대한 불투명 핸들입니다. 파일이 아닙니다.

Uri의 출처가 표시되지 않습니다. 내 생각에 pickedFile이라는 이름이 부여되면 ACTION_GET_CONTENT 또는 ACTION_OPEN_DOCUMENT을 사용하고있는 것입니다. 어떤 경우에도 사용자가 파일을 선택하지 않습니다. 내 생각 엔이 Uri이 어디에서 오는에 관해서는 정확하면

, 그 Urifile 계획 또는 content 체계 중 하나를해야합니다. 같은 형식으로 Uri 중 하나의 유형에 InputStream을 가져올 수 있습니다. ContentResolveropenInputStream()으로 전화하십시오. Activity 또는 Service과 같이 ContextgetContentResolver()을 호출하여 ContentResolver을받습니다.

+0

그래, 고쳐주었습니다. 내가 왜 InputStreams 대신에 FileInputStreams가 필요하다고 생각하는지 모르겠다. 고마워, 친구! – user3713569