Получить локальный файл, используя путь Java 7
Как вы можете получить локальный файл, используя "java.nio.file.Paths" для Java 7 или любого другого API . У меня есть эта строка кода, но он возвращает неправильный формат каталога.
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
Как я могу избавиться от этого первым /
или это неправильный метод? Скопировал два URL-адреса в проводнике Windows, первый открывает веб-страницу и не может отображаться, второй открывает нужный мне файл.
1 ответ
Если вы хотите получить содержимое локального файла, вам не нужно использовать PersistenceService, вы можете просто использовать java.nio.file.Files
учебный класс:
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:
не должны быть использованы.