Zum Inhalt springen

Datei schicken bzw. kopieren mit Java


Empfohlene Beiträge

Geschrieben
Kann mir einer sagen, wie man mit JAVA eine txt-File, die lokal am Rechner liegt, 1:1 über eine TCP/IP Verbindung zu einem Drucker schickt bzw. kopiert?
Ich weiss nicht genau, was du vorhast. Willst du Low-Level die Datei einfach an den Drucker schicken oder "normal" von Java aus drucken?

Wenn du "nur" über den TCP-Socket Daten senden willst einfach einen InputStream auf die Datei öffnen, die Daten lesen und an den OutputStream des Sockets senden.

Geschrieben
Nein, ich will nicht drucken, sondern eine Datei über TCP/IP auf den Drucker direkt übertragen, ohne diese zu öffnen oder auszulesen.
Wie willst du dann an den Inhalt der Datei kommen, ohne sie zu öffnen oder Daten zu lesen? *wunder*.

Dir bleibt in Java nur die Möglichkeit, die ich oben schon beschrieben habe: Datei öffnen und byte für byte über einen Socket an den Drucker senden.

Geschrieben

Der copy befehl bei DOS (besagtes CMD Fenster) öffnet die Datei doch auch zwangsläufig, um sie zu kopieren. Ein Kopierer ist auch nicht in der Lage ein Blatt zu kopieren, wenn mann es nicht hineinlegt...

Du kannst mit Java aber ein wenig schummeln. Wenn niemand mitbekommen soll, dass Du irgendwie an der Datei dran warst (passiert beim lessen soweit ich weiß eh nicht), kannst Du glaube ich alle Zeitstempel der Datei manuell korrigieren.

Geschrieben

*ggg*

schau Dir mal deine Stream-Geschichte an.

eigentlich musst Du genau das gleiche machen, nur anders herum ;-))

also nicht mit einem StreamReader, sondern ein Writer - hehe

Geschrieben

Öffne die Datei, hole Dir aus der Datei den Stream zum lesen.

Öffne die Verbindung zum Drucker, hole Dir den OutputStream.

Mache evtl. jeweils einen Buffered Reader (TXT Datei) und einen Buffered Writer (TCP Verbindung).

Lese eine Zeile mittels des Readers aus der Datei, schreibe diese Zeile mit Hilfe des Writers in den TCP Stream zum Drucker.

Mach das solange, bis die Datei ganz ausgelesen und gesendet ist.

Schließe die TCP Verbindung.

Schließe die Datei.

Sollte ja nun nicht sooo schwer sein. Programmieren musst Du das schon selbst.

Oder eben, wie Perdi bereits gesagt hat, nicht eilenweise auslesen, sondern eben byte für byte...

Geschrieben

dieser Code Könnte dir helfen:

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter

import java.io.File;

import java.io.IOException

import javax.swing.JOptionPane;


public class Copy{

       public static void main(String[]args){

              File infile = new File(JOptionPane.showInputDialog("EingabeDatei aus wählen!"));

              File outfile = new File(JOptionPane.showInputDialog("AusgabeDatei aus wählen!"));

              try{

                     BuffereReader in = new BufferedReader(new FileReader(infile));

                     BufferedWriter out = new BufferedWriter(new FileWriter(outfile));

                     String s;

                     while((s = in.readLine())!=null){

                            out.write(s);

                            out.newLine();

                     }

                     System.out.println("kopieren erfolgreich beendet");

              }catch(IOException e){

                     System.out.println("Fehler beim kopieren. Vorgang abgebrochen");

              }

       }

}

Jedoch habe ich keine Ahnung davon wie du den Ausgabepfad auf den Drucker bekommst

Geschrieben
Merci Speedi, funktioniert.

Du bekommst den Ausgabepafd auf den Drucker, indem du als Ausgabepfad den Freigabenamen deines Druckers auswählst --> \\dein-pc\freigabename

das mit dem Freigabenamen wusste ich bis jetzt noch nicht *freu* wieder was dazu gelernt.

Ubrigens wenn du den Pfad etwas komfortabler auswählen willst kannst du javax.swing.JFileChooser verwenden.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...