Komplette Datei in Array speichern

Status
Nicht offen für weitere Antworten.

SBS

Aktives Mitglied
Hallo,

gibt es eine Möglichkeit Dateien vollständig einzulesen und in einem Array zu speichern ?

Damit meine ich jetzt nicht ein Array des Typs File, denn dort werden die Dateien ja nicht wirklich gespeichert sondern lediglich eine Referenz zu diesen anhand des Pfades, sowie diverse weitere Informationen (ist das so überhaupt richtig?).

Könnte bitte jemand ein kurzes Code Beispielgeben, falls man sowas machen kann?
Es müsste ja irgendwie der INhalt eines Streams gespeichert werden,
in allen Beispielen, die ich gesehen habe wird die Datei automatisch gleich wieder woanders hin geschrieben , ich möchte diese aber aus einem bestimmten Grund festhalten - das dies erhebliche Größen mit sich bringen kann, je nachdem wieviele Dateien man dann abspeichert ist mir bewusst, soll aber erstmal kein Hindernis darstellen.

Besten Dank - hoffentlich geht sowas, würde mir einiges erleichtern!
 
S

SlaterB

Gast
Schon mal die Klasse FileReader angeschaut?
Damit und den diversen verwandten Klassen kann man Dateien als String oder Byte-Array in den Speicher lesen.

Bevor du hier aber nach Details fragst, frag lieber erstmal ein Buch deiner Wahl.
Datei-Einlesen ist doch eines der grundlegensten Themen.

---

Was du zu Files sagt, kling recht richtig in meinen Ohren.
 

SBS

Aktives Mitglied
Moin, ja stimmt wohl, die Klasse ist mir auch bekannt, aber in nahezeu jedem Beispiel dass ich mir bis jetzt angesehen habe, wird die Datei eingelesen per Stream und "gleichzeitig" auch sofort wieder woanders hingeschrieben per Streams, wirklich gespeichert habe ich noch in keinem Beispiel gesehen, daher frage ich :)
 

Leroy42

Top Contributor
Dann speichere die gelesenen Zeilen in einer ArrayList<String>
und wandele diese nach Lesen der letzten Zeile in ein String[] um.
 

ff

Aktives Mitglied
wärs nicht sinnvoll, die datei gleich in einen byte-array zu schreiben, wenn sie eh schon als byte-stream rüberkommt?

aber wozu willst du überhaupt ganze dateien in einem array haben?
 

Leroy42

Top Contributor
ff hat gesagt.:
wärs nicht sinnvoll, die datei gleich in einen byte-array zu schreiben, wenn sie eh schon als byte-stream rüberkommt?

Davon, daß es sich um ein byte-stream handelt, hat SBS nichts geschrieben;
deshalb bin ich von einer Textdatei ausgegangen...

Aber in diesem Fall, ist dein Vorschlag und die Datei kann in einem Rutsch
in einem Array gespeichert werden, dessen Länge man über File.getLength() bekommt.
 

SBS

Aktives Mitglied
Also zur Erklärung, jegliche Art von DAteien müsste ich berücksichtigen, also da jemand ein beliebiges Verzeichnis eines lokalen System auswählen kann.

Abspeichern möchte ich es aus folgendem Grund: Ich arbeite mit Agenten, welche im NEtzwerk migireren, d.h. sie wandern zu einem anderen Java System. Nun möchte ich, dass der Agent Dateien mit zu einem anderen System nimmt, da ich auf diesem System aber keine Klasse oder Ähnliches starten kann/soll muss der Agent alle Aufgaben übernehmen, er kann entweder lokal vorhanden ssein oder auf dem entfernten System.

Somit würde eine Möglichkeit wie der Sockets eine Verbindung herstellen und einen STream übers Netz schicken sehr schwer zu realisieren sein, da der Agent nur hier oder "drüben" sein kann, nicht jedoch gleichzeitig senden und lauschen kann (es sei denn jemand hat da jetzt ne idee für?!),
daher möchte ich den Agenten mit den DAteien im Anhang in Form eines Arrays rüberschicken zum anderen System.

Habe auch gerade nen Code hingerkeigt der zu funktionieren scheint...
 

Wildcard

Top Contributor
btw: Bei größeren Dateien ist es wesentlich effizienter den Inhalt mit FileChannel#map in den Speicher zu laden.
 

SBS

Aktives Mitglied
Ich habe jetzt folgendes hier:
Code:
protected byte[] readFile(File file)
	{
	    int got = 0;
	    byte read[] = new byte[2000];

	    ByteArrayOutputStream bo = new ByteArrayOutputStream();

	    try
	    {
	      FileInputStream fis = new FileInputStream(file);
	      while (got >= 0)
	      {
	        got = fis.read(read);
	        if (got > 0)
	        {
	          bo.write(read, 0, got);
	        }

	      }
	      fis.close();
	      bo.close();

	    }
	    catch (Exception e)
	    {
	    	System.out.println("Fehler beim Dateilesen: "+e);

	    }
	    return bo.toByteArray();
	  }

Das liefert mir ein byte Array mit dem File Inhalt. Dazu habe ich folgende Frage:

Die Erzeugung des read arrays mit 2000 - macht das Probleme wenn ich große Dateien verwende? Oder besteht da kein zusammenhang? Falls doch, wie könnte ich das denn mal dynamisch gestalten, damit ich keine feste Größe vorher angeben muss.
Probiert hab ich das bereits in dem ich das Array über die Länge des übergebenen Arrays initialisiere, dann sagt er mir aber, dass ich einen int Wert brauche und das length einen long Typ zurückliefert..
Oder reichen 2000 aus, da das array immer wieder neu überschrieben wird?

2.) Wie kriege ich das jetzt wieder ausgepackt?
Muss ich mit einem ByteArrayInputStream die Daten aus dem Array lesen und per FileOutputStream einfach in eine Datei schreiben, oder muss ich dabei was besonderes berücksichtigen?
 

Leroy42

Top Contributor
Kommt d'rauf an, was du unter große Dateien verstehst.

Bei 1 TeraByte-Dateien sehe ich schon gewisse Schwierigkeiten... :cool:

Ich würde direkt lesen:

Code:
protected byte[] readFile(File file) {
    byte[] read = new byte[file.getLength()];
    try {
        FileInputStream fis = new FileInputStream(file);
        fis.read(read);
        fis.close();
    } catch (IOException e) {...}
    return read;
}
 

SBS

Aktives Mitglied
Hi,

ich mache es jetzt so: http://www.java-forum.org/de/viewtopic.php?t=36998

Naja direkt lesen funktioniert wohl nicht, da ich einen Agenten starte, welche lokal die Daten sammelt, sich übers Netzwerk bewegt, und "drüben" auspacken soll - da drüben nichts gestartet ist kann ich dort keine Socketverbindung oder Ähnliches aufmachen, welche lauscht. Der Agent kann entweder nur lokal oder "drüben" sein - aber so gehts im Moment zumindest :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte Komplette Liste ausgeben Java Basics - Anfänger-Themen 14
Lord.Djerun (Netbeans) Bei TimeUnit.Seconds,Sleep() hängt sich das komplette Programm auf.. Java Basics - Anfänger-Themen 8
W Komplette Webseite runterladen Java Basics - Anfänger-Themen 6
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
S Komplette Rekursion beenden? Java Basics - Anfänger-Themen 2
M Imports einzeln oder direkt komplette Pakete .*? Java Basics - Anfänger-Themen 26
V Komplette Programmstruktur Vergleichen md5? Java Basics - Anfänger-Themen 9
S Simple aber komplette Java Loesung von Emails. Java Basics - Anfänger-Themen 11
S Komplette Objekte in jTable oder nur IDs? Java Basics - Anfänger-Themen 5
0x7F800000 wie pack ich komplette objekte in binäre dateien? Java Basics - Anfänger-Themen 4
P Wieso wird der komplette Inhalt im verzeichnis nicht gelösch Java Basics - Anfänger-Themen 5
D komplette Textdatei einlesen Java Basics - Anfänger-Themen 15
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
A CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
T Printwriter Datei nicht überschreiben Java Basics - Anfänger-Themen 10
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
E extern Datei von meinem Computer aufmachen Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
J CSV-Datei verarbeiten Java Basics - Anfänger-Themen 27
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
EchtKeineAhnungManchmal Controller aus FXML Datei entfernen Java Basics - Anfänger-Themen 49
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
Kotelettklopfer Sqlite DB aus Java Datei ansprechen. Java Basics - Anfänger-Themen 147
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
C XML Datei schreiben Java Basics - Anfänger-Themen 14
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
J Json Datei auslesen Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
I JAX-WS.... Datei ".ical" zurückgeben.... Wie annotieren? Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
E Pfadangaben bei Ausführbarer Jar Datei Java Basics - Anfänger-Themen 8
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
R Wie installiere ich Jdownloadersetup.sh datei mit debian Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
O Best Practice Datei-Pfad zerlegen Java Basics - Anfänger-Themen 4
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
G In Datei schreiben Java Basics - Anfänger-Themen 1
J Klassen .class Datei öffnen Java Basics - Anfänger-Themen 31
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben