Datei(en) via Java übers Netzwerk kopieren

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von CrazyMetal, 16.01.2007.

  1. CrazyMetal

    CrazyMetal Thread Starter MacUser Mitglied

    Beiträge:
    65
    Zustimmungen:
    0
    MacUser seit:
    21.12.2001
    Moin,
    ich versuche grade eine Datei via Java über Netzwerk zu kopieren.
    Lokal ist das kein Problem mit RandomAccsessFile
    Code:
    static void kopiereDatei(){
    try {
    		RandomAccessFile datei = new RandomAccessFile("sn.png", "r");
    		RandomAccessFile neudatei = new RandomAccessFile("sn1.png", "rw");
    		try {
    			while(neudatei.length()<datei.length()){
    				neudatei.write(datei.read());
    			}
    			datei.close();
    			neudatei.close();	
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	} catch (FileNotFoundException e) {
    		e.printStackTrace();
    	} 
    }
    
    Währe da eine Möglichkeit via OutputStream? Ich habe schon viel gegooglet, aber nicht in der Richtung gefunden.

    Schonmal Danke für mögliche Antworten.
    Grüße,
    Crazy
     
  2. kahler

    kahler MacUser Mitglied

    Beiträge:
    234
    Zustimmungen:
    0
    MacUser seit:
    26.09.2005
    Es gibt da sicherlich die verschiedensten Varianten.
    Ich verstehe es wohl schon richtig, dass du einen Java Client und einen entsprechenden Server schreiben willst und diese beiden sollen dann eine Datei via Netzwerk kopieren?
    Sollte das der richtige Ansatz sein, dann schau dir Mal RMI an. Das ist ein "Framework" (vielleicht etwas übertrieben), das sich um Netzwerk und verteilte Objekte in Java kümmert.
     
  3. jpv

    jpv MacUser Mitglied

    Beiträge:
    159
    Zustimmungen:
    10
    MacUser seit:
    09.06.2006
    Die Frage ist hier, welches Netzwerkprotokoll willst Du verwenden?

    Aber Du wirst am besten mit InputStream->OutputStream arbeiten. Du könntest also eine Funktion zum kopieren gebrauchen:

    public static void copy(InputStream is, OutputStream os) throws IOException {
    byte[] buf = new byte[0x1000];
    for (int len = is.read(buf); len >= 0; len = is.read(buf))
    os.write(buf, 0, len);
    }


    Um eine Netzwerkverbindung herzustellen benötigst Du Klassen aus dem java.net.-Package:

    java.net.Socket und java.net.ServerSocket

    Diese beiden Klassen solltest Du mal suchen und genau unter die Lupe nehmen.

    Gruß, jpv.
     
  4. Sojus

    Sojus MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
    Habe mal mit so was angefangen aber es dann nie fertig gemacht.

    wie man Files in einen Stream schreibt sollte aber hier noch in meinem code stehen

    http://forum.giga.de/showthread.php?t=830986

    Jemand hat aber noch einen Comment darüber geschrieben was sich für Probleme ergeben

    mfg
     
Die Seite wird geladen...

Diese Seite empfehlen