kostenloser Webspace werbefrei: lima-city


Dateizugriff total lahm

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    xenodez

    xenodez hat kostenlosen Webspace.

    Hey Leute, ich beschäftige mich grad ein bisschen mit Java, genauer mit Dateioperationen. Dazu will ich eine Datei erstellen und mit Zufallsdaten füllen.

    Das ist der Code: http://nopaste.info/b4dfccf473.html

    Irgendwie scheint mir das Ganze aber verdammt langsam, kann mir jemand helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    Ich hab\' das mal auf \"meine\" Weise gemacht - mit einem RandomAccessFile.
    Erst wollte ich nicht alles direkt schreiben, sondern erst in einem StringBuffer lagern und am Ende alles auf einmal in die Datei schreiben.
    Hatte ich nachher Probleme mit dem Heap-Space :/

    Aber hier mal der Code, den ich mir zusammengeschrieben hab:
    package org; 
    import java.util.Scanner;
    import java.io.RandomAccessFile;
      
     public class Filewrite{
       public static void main(String [] args){
                    
       Scanner scan = new Scanner(System.in);
       System.out.println(\"Dateiname?\");          //Hier wird der GESAMTE, ABSOLUTE Dateiname angegeben.
       String name = scan.nextLine();
       System.out.println(\"Bitte Geben Sie die Gesamtgroesse der Datei in MegaByte an:\");
       long groesse = scan.nextLong();
      
       groesse = 1048576 * groesse;
       long time1 = System.currentTimeMillis();
       try{
               RandomAccessFile raf = new RandomAccessFile(name, \"rw\");
        
                            while(raf.length() < groesse){
                                    raf.writeInt((33 + (int) (Math.random() * 93)));
                            }
                            
                 System.out.println(\"--------------------------\");
                         
                raf.close();
       } catch (Exception e) {
                     e.printStackTrace();
               }
      
       System.out.println();
       System.out.println(\"Auftrag erfolgreich erledigt!\");
       System.out.println( \"Das Schreiben hat \"+((System.currentTimeMillis()-time1)/1000.0f)+\"s gedauert!\");
       }
     }


    und hier mal ne kleine Testausgabe:

    Dateiname?
    C:\\b.txt
    Bitte Geben Sie die Gesamtgroesse der Datei in MegaByte an:
    2
    --------------------------

    Auftrag erfolgreich erledigt!
    Das Schreiben hat 5.344s gedauert!


    Geht doch eigentlich, oder?^^

    (Ich hab kein Plan - vielleicht war deine Variante vorher sogar schneller :D)

    Aber trotzdem noch was zu deinem Code:
    In Zeile 26 benutzt du \"i\", das es IMHO garnicht gibt^^




    EDIT: 10mb dauern auch nur ~30sek.
    Aber - darf man mal fragen, wozu du sowas brauchst?^^

    Beitrag geändert: 16.2.2008 14:26:54 von benutzernaemelchen
  4. Autor dieses Themas

    xenodez

    xenodez hat kostenlosen Webspace.

    Vielen Dank für die Hilfe soweit!

    Ich beschäftige mich, wie im Eröffnungspost erwähnt, momentan mit Dateizugriffen in Java und da wollt ich einfach mal was \"einfaches\" ausprobieren, wobei mir dieser Gedanke kam.
  5. Hallo zusammen!
    Da ich zur Zeit auch sehr viel mit Java herumexperimentiere, hab ich mir eure Sachen auch mal angeguckt und selbst ausprobiert und würd nun auch gerne mal wissen welche Methode nun die richtige ist?..., in C++ schreibt das Programm etwa 100 mal schneller Daten.., das kann doch irgendwie nich sein??, Welche schnellen Methoden zum Schreiben in Dateien gibts denn sonst noch? - oder ist Java wirklich soooo extrem langsam??

    lg Xilef

  6. Hallo zusammen!
    Da ich zur Zeit auch sehr viel mit Java herumexperimentiere, hab ich mir eure Sachen auch mal angeguckt und selbst ausprobiert und würd nun auch gerne mal wissen welche Methode nun die richtige ist?..., in C++ schreibt das Programm etwa 100 mal schneller Daten.., das kann doch irgendwie nich sein??, Welche schnellen Methoden zum Schreiben in Dateien gibts denn sonst noch? - oder ist Java wirklich soooo extrem langsam??

    lg Xilef

    Wer sagt ewnn sowas?^^
    Java ist zwar _fast_ immer ein wenig langsamer, aber nicht so extrem, wie es manchmal gesagt wird. Vor allem die neueren JVMs sind sehr viel schneller.
  7. mhh, dann nenn mir ne Methode, womit man schneller Daten in Dateien schreiben kann..??
    ich hab bisher keine gefunden..;)

    lg Xilef
  8. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.


    mhh, dann nenn mir ne Methode, womit man schneller Daten in Dateien schreiben kann..??
    ich hab bisher keine gefunden..;)

    lg Xilef

    Schneller als was? Und mal im Ernst - Wann schreibt man schon über 2MB große Textdateien? (Ich hab gerade eine 100MB große Datei geschrieben - hat 298.5s gedauert - das sind ~0,35MB in der Sekunde - find ich schnell genug^^)
  9. e********l

    Naja,je mehr ihr direkt in eine Datei schreibt ohne über einen Buffer zu gehen, desto langsamer ist das ganze nunmal. Mit einem Buffer von sagen wie 1 bis 2 MB geht das ganze schon wesentlich schneller ;)
  10. Hey!.. danke für den Tipp!:) , das mit dem Buffer erhöht die geschwindigkeit um mehrere tausend prozent^^.., jetzt gehts rasend schnell, nochmals danke!;)


    lg Xilef
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!