2015-06-18 4 views
0

У меня есть XML-файл в Dropbox, который я хочу получить с помощью моего Google App Engine с помощью API-интерфейса Dropbox. После небольшого разговора я обнаружил, что GAE не поддерживает FileOutputStream.Пытается загрузить файл с помощью Dropbox Java API в GAE

FileOutputStream outputStream = new FileOutputStream("myFile.txt"); 
try { 
    DbxEntry.File downloadedFile = client.getFile("/myFile.txt", null, 
     outputStream); 
    System.out.println("Metadata: " + downloadedFile.toString()); 
} 

Любые идеи о том, как я могу получить данные XML в свой GAE (клиент или сервер) из Dropbox? Thanks Tim

+0

почему вы хотите использовать 'FileOutputStream'? 'client' поддерживает любую реализацию' OutputStream' –

+0

Я использую 'FileOutputStream', как это требуется API-интерфейсу DropBox API' getFile', из java-учебника DropBox. Кажется, он принимает 'OutputStream', но как я могу создать экземпляр' OutputStream', поскольку конструктор защищен? Извините, может быть, мне что-то не хватает. Кто-нибудь получил пример кода для чтения файла DropBox в среде GAE? Спасибо! –

+0

OutputStream - это интерфейс, есть много вариантов реализации, зависит от того, что вам нужно. FileOutputStream для файлов, поэтому он бесполезен без файлов (на gae). ByteArrayOutputStream, например, для данных в памяти, это, вероятно, то, что вам нужно. И есть сотни других реализаций. В том числе один для Google Cloud Storage. Также взгляните на https://docs.oracle.com/javase/tutorial/java/concepts/interface.html –

ответ

0

Получил! Благодарю. ByteArrayOutputStream работал. Так что для тех, кто еще пытается прочитать файл DropBox в среде Google App Engine (т.е. чтения в память), вот то, что работает для меня

String fileName = "myfile.xml"; OutputStream out = new ByteArrayOutputStream(); 
try { 
    dbxClient.getFile("/" + fileName, null, out); 
} catch (DbxException e) { 
    e.printStackTrace(); 
} 

System.out.println("File Contente: " + out.toString()); 
Смежные вопросы