2016-04-07 26 views
0

kutu-java-sdk CSV dosyası içeriğini okumak nasıl [1]i [kutusunu] kullanıyorum Merhaba parçalar

[1]: https://www.box.com/ benim csv dosyasını saklamak için. Dosya boyutu 2GB'dir. Şimdi, her dosya kaydını işlemek ve dosya içeriğine bağlı olarak bir işlem yapmak istiyorum.

ı yaptıklarını: bununla

public class BoxConnector { 

public static void main(String[] args) throws IOException { 

    BoxAPIConnection api = new BoxAPIConnection("My access token"); 

    BoxFolder rootFolder = BoxFolder.getRootFolder(api); 
    for (BoxItem.Info itemInfo : rootFolder) { 
     System.out.format("[%s] %s\n", itemInfo.getID(), itemInfo.getName()); 
     BoxFile file = new BoxFile(api, itemInfo.getID()); 
     BoxFile.Info info = file.getInfo(); 
     try { 
      System.out.println(info.getSize()); 

      File tmpFile = File.createTempFile("file", "temp"); 
      FileOutputStream fsTmpStrem = new FileOutputStream(tmpFile); 
      long blockSize = 1000; 
      long roundChunks = info.getSize()/blockSize; 
      long startByteRange = 0; 
      long endByteRange = blockSize; 
      for (long start = 0; start < roundChunks; start++) { 

       file.downloadRange(fsTmpStrem, startByteRange, endByteRange); 
       processFile(tmpFile); 
       startByteRange = endByteRange; 
       endByteRange = endByteRange + blockSize; 
      } 
      //last download block 
      file.downloadRange(fsTmpStrem, blockSize * roundChunks, info.getSize()); 
      processFile(tmpFile); 

     } finally { 

     } 
    } 
} 

private static void processFile(File tmpFile) throws IOException { 

    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(tmpFile))); 
    String line = null; 
    while ((line = br.readLine()) != null) { 
     System.out.println("Process line record"); 
    } 
    br.close(); 
    //after each process lets delete the temp file 
    tmpFile.delete(); 

} 

}

i box.com yüklediğiniz dosya adını almak mümkün. Şimdi her kayıt ve süreci okumak istiyorum. Ancak, bir dosyaya erişime izin veren bir API'ye ihtiyacım var.

bu dosya ile başlangıç ​​ve bitiş bayt aralığı flag.however tarafından tanımlanan yığın başına olarak indiriliyor. Aşağıda ben tam çizgi almıyorum demek Anlamı benim rekor

16F11C78-D004-4600-8D28-445C087D2A7D 
31C99F3D-D4C7-418A-9ACC-D9A382BCD53A 
30C1AA92-B5B7-4ABF-A631-A8C150D90C4F 
D9FC1DBF-B309-4BB1-8955-D9F48F643E97 

i son satırından

16F11C78-D004-4600-8D28-445C087D2A7D 
    31C99F3D-D4C7-418A-9ACC-D9A382BCD53A 
    30C1AA92-B5B7-4ABF-A631-A8C150D90C4F 
    D9FC1DBF- 

i.e. B309-4BB1-8955-D9F48F643E97 parçası eksik alıyorum olduğunu. Bunu indirme API'sı ile nasıl yönetmeliyim?

cevap

0

Bu şu anda Kutu API'sı ile mümkün değildir. Sadece bir dosyanın tamamını indirebilirsiniz.

+0

Evet, çıktıya aktarabilirim. Yukarıda eklenen kod başına aralık indirmeyi denedim. Başlangıç ​​ve bitiş baytları için aralık tanımlaması nedeniyle burada. Birkaç kayıt kısmen indiriliyor. Bunu nasıl başarabiliriz. Teşekkürler – Sam