Crackster Geschrieben 23. März 2005 Geschrieben 23. März 2005 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!! Zitieren
perdian Geschrieben 23. März 2005 Geschrieben 23. März 2005 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. Zitieren
Crackster Geschrieben 23. März 2005 Autor Geschrieben 23. März 2005 Nein, ich will nicht drucken, sondern eine Datei über TCP/IP auf den Drucker direkt übertragen, ohne diese zu öffnen oder auszulesen. Zitieren
perdian Geschrieben 23. März 2005 Geschrieben 23. März 2005 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. Zitieren
Crackster Geschrieben 24. März 2005 Autor Geschrieben 24. März 2005 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. Zitieren
Biese Geschrieben 24. März 2005 Geschrieben 24. März 2005 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. Zitieren
Crackster Geschrieben 24. März 2005 Autor Geschrieben 24. März 2005 Danke, aber "unsichtbar" muss ich nicht unbedingt bleiben. Mit welchem Code schaff ich dann das kopieren von meinem Rechner auf den Netzwerkdrucker? Zitieren
Biese Geschrieben 24. März 2005 Geschrieben 24. März 2005 *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 Zitieren
Crackster Geschrieben 24. März 2005 Autor Geschrieben 24. März 2005 Das ist mir schon klar, aber wie kann man die Daten aus der txt-File lesen um dann anschließend zu schreiben? Zitieren
Biese Geschrieben 24. März 2005 Geschrieben 24. März 2005 Ö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... Zitieren
speedi Geschrieben 24. März 2005 Geschrieben 24. März 2005 sorry hat sich erledigt habe das Problem falsch verstanden Zitieren
speedi Geschrieben 24. März 2005 Geschrieben 24. März 2005 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 Zitieren
Crackster Geschrieben 24. März 2005 Autor Geschrieben 24. März 2005 Merci Speedi, funktioniert. Du bekommst den Ausgabepafd auf den Drucker, indem du als Ausgabepfad den Freigabenamen deines Druckers auswählst --> \\dein-pc\freigabename Zitieren
speedi Geschrieben 29. März 2005 Geschrieben 29. März 2005 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. Zitieren
Crackster Geschrieben 30. März 2005 Autor Geschrieben 30. März 2005 Kann es doch nicht über den Freigabenamen machen, wie funktioniert das Schreiben bzw. die Ausgabe über die IP? Zitieren
perdian Geschrieben 30. März 2005 Geschrieben 30. März 2005 Wie wäre es, wenn wir das ein einem Thread diskutieren? http://forum.fachinformatiker.de/showthread.php?t=76413 Zitieren
Empfohlene Beiträge
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.