Zum Inhalt springen

Datei schicken bzw. kopieren mit Java


Empfohlene Beiträge

Geschrieben

Hey Leute!!

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?

Merci!!

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

Das Ergebniss sollte so sein, wie wenn man über das cmd-Fenster mit dem copy Befehl eine Datei kopiert, nur eben nicht mit dem cmd-Fenster sondern mit Java.

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

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...