2014-04-04 2 views
0

Java 7 또는 다른 API의 경우 "java.nio.file.Paths"를 사용하여 로컬 파일을 검색하는 방법은 무엇입니까? 이 코드 줄이 있지만 잘못된 디렉터리 형식을 반환합니다.path java 7을 사용하여 로컬 파일 검색

public static InputStream readfile(String filename) throws FileNotFoundException 
{ 
persistenceService = (PersistenceService) ServiceManager.lookup(PersistenceService.class.getCanonicalName()); 
URL url = Paths.get(filename).toUri().toURL(); 
FileContents fileContents = persistenceService.get(url); 

결과 인쇄 URL은 다음과 같습니다

file:/C:/Users/username/Desktop/filedirectory/filename 

가 있어야 :

가 어떻게이 첫 번째 / 제거 할 수 또는 이것은 잘못된 방법이다

file:C:/Users/username/Desktop/filedirectory/filename 
? Windows 탐색기에서 두 URL을 복사하면 첫 번째 웹 페이지가 열리고 표시 할 수 없으며 두 번째 URL은 필요한 파일을 엽니 다. 로컬 파일의 내용을 얻고 싶다면

+0

당신은 "결과는 :"... "url"을 인쇄 할 때 이것을 말하는가? 왜 결과가 잘못됐다고 생각하니'persistenceService.get (url)'이 예외를 던집니까? –

+0

@Duncan 예 URL을 인쇄 할 때 사용합니다. persistenceService.get (url) throw java.io.FileNotFoundException – user3375061

+0

어떤 유형이'persistenceService'이고'filename'의 값은 무엇입니까? –

답변

0

, 당신은 당신은 단지 java.nio.file.Files 클래스를 사용할 수 있습니다, PersistenceService를 사용할 필요가 없습니다 :

Path path = FileSystems.getDefault().getPath(filename); 
List<String> lines = Files.readAllLines(path, charset); 

당신이 javax.jnlp.PersistenceService를 사용하려면, http://docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/javax/jnlp/PersistenceService.html의 설명서를 읽으십시오 :

응용 프로그램은 코드베이스를 기반으로하는 URL로 저장된 데이터에만 액세스 할 수 있습니다. 예를 들어, 코드베이스 http://www.mysite.com/apps/App1/ 주어진 응용 프로그램은 관련 URL에있는 데이터에 액세스하도록 허용 될 것입니다 :

  • http://www.mysite.com/apps/App1/
  • http://www.mysite.com/apps/
  • http://www.mysite.com/

은 그래서 시작하는 URL을 보인다 file:은 사용하지 않아야합니다.

+0

내 메서드는 파일의 내용에서 inputstream을 반환해야합니다. java.nio.file.Files를 사용하여 어떻게 달성 할 수 있습니까? – user3375061

+0

Files.newInputStream (Path, OpenOption ...)을 사용하십시오. API 참조 (http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html)에 잘 설명되어 있습니다. –

+0

아, 그리고 위에 BufferedReader 인스턴스를 만들려면 그 스트림에서 Files.newBufferedReader (Path, OpenOption ...)를 사용하면됩니다. 내 문제를 해결 한 –

관련 문제