EFS OpenStream

downset04

Erfahrenes Mitglied
Hallo
Ich versuche ein Soundfile mit einem Stream zu kopieren (Eclipse File System)

Code:
        IFileStore file = EFS.getStore(new URI(from));
        IFileStore dir = EFS.getStore(new URI(toDir));    
        IFileInfo dirInfo = dir.fetchInfo();
        IFileInfo fileInfo = file.fetchInfo();
    
    

        if (dirInfo.isDirectory()) {          
            IFileStore child = dir.getChild(file.getName());
            
                 
                OutputStream ostream = child.openOutputStream(EFS.OVERWRITE, null);
               InputStream istream = file.openInputStream(EFS.NONE, null);                   
                byte[] buffer = new byte[ 1024 * 1024 ];
                int bytesRead = -1;
                if (istream!=null  && ostream != null){
                    int i = 0;
                    do {
                        bytesRead=istream.read(buffer );                         
                        ostream.write(buffer );       
                        ++i;
                        }  while(bytesRead!=-1);  
                    System.out.println(i);
                }
        
              ostream.close();
              istream.close(); 
              System.out.println(fileInfo.getLength() dirInfo.getLength());
Das file wird zwar erzeugt aber die größe ist immer 0.

Sowas
Code:
   IFileStore child =  store.getChild("foo.txt");   OutputStream stream = child.openOutputStream(EFS.NONE,  progress);
   Writer w = new  OutputStreamWriter(stream);
  w.write("Hello, world\n");
 w.close();
funktioniert und Hello World wird ins File geschrieben? Verwend ich einen falschen Stream oder was kann ich noch probieren?
thx
 
Sers!

Muss es mit EFS sein?
Versuchs mal damit!

Java:
FileInputStream inputFile= new FileInputStream(sourceFile); 
         FileChannel input= inputFile.getChannel();

         // Zieldatei öffnen
         FileOutputStream outputFile = new FileOutputStream(targetFile);
         FileChannel output= outputFile.getChannel(); 

         // die Länge der zu kopierenden Datei
         long num = input.size(); 

         // kopieren 
         input.transferTo(0,num,output); 

         input.close();
         output.close();
 
Zurück