Datei lesen

KalleM

Aktives Mitglied
Hallo,
habe ein servlet und versuche gerade ein *.txt zu lesen, um dann eventuell die daten weiter zu verarbeiten:
Java:
public class ExampleServlet extends HttpServlet{

       @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException, FileNotFoundException {


            Scanner scanner = new Scanner(new File("test.txt"));
		while(scanner.hasNext()){
			System.out.println(scanner.next());
		}

RequestDispatcher r = req.getRequestDispatcher("test.jsp");
        r.forward(req, resp);
    }
}
bekomme ständig eine filenotfound meldung. ist es nicht so, dass das root-verzeichnis der projektname ist und wenn ich die test.txt hier liegen haben, dann müsste das servlet die datei doch finden?
würde mich über hilfe freuen.
 

KalleM

Aktives Mitglied
stelle mich wohl etwas an, komme so aber leider noch nicht weiter. nutze eclipse mit tomcat.
erhalte dann:
/Applications/eclipse/Eclipse.app/Contents/MacOS/test.txt
 
S

SlaterB

Gast
nun, dort muss also die Datei liegen, um derart zu funktionieren,
ob es anders zu konfigurieren ist kann ich persönlich nicht sagen,

eine grundsätzliche Alternative ist immer
X.class.getResourceAsStream()
mit einem Pfad relativ zum Ort der Datei X.class
 

FArt

Top Contributor
Eine Datei in eines Servlet lesen ist selten eine gute Idee und oft auch nicht nötig. Was soll es denn werden, wenn es fertig ist? ;-)
 

KalleM

Aktives Mitglied
aus spass an der sache beschäftige ich mich mit j2ee, habe kein projekt geplant.
wollte einfach nur daten aus einer anderen quelle in eine jsp einbinden (testen, experimentieren).
 
Zuletzt bearbeitet:

FArt

Top Contributor
aus spass an der sache beschäftige ich mich mit j2ee, habe kein projekt geplant.
wollte einfach nur daten aus einer anderen quelle in eine jsp einbinden (testen, experimentieren).
Und? Gerade dann sollte man es richtig machen... just my 2 cents...
 

KalleM

Aktives Mitglied
Das stimmt natürlich!
Da ich wie gesagt etwas experimentiere und mir in den letzten tagen, das ein oder andere beispiel zum Thema J2EE durchgelesen haben und noch vor einem großem Berg stehe, dachte ich mir, beginne mit kleinen Geschichten.
Nun habe ich eine Beispielanwendung gefunden (Vokabeltest) gefunden und wollte das ein oder andere mal ausprobieren, also Daten aus einer Quelle laden diese in der View darstellen und und die Antworten wieder entgegennehmen.
Wie würdest du so etwas den umsetzen?
Nebenbei bin ich happy, das es ein Forum wie dieses gibt und nehme Ratschläge, Verbesserungsvorschläge gern' an.
 
Zuletzt bearbeitet:

FArt

Top Contributor
Sinnvoll wäre es natürlich, wenn die Daten aus einer Datenbank kommen. Wenn die Daten in einer Datei gehalten werden, sollte diese mit der Applikation (oder sogar extra!) deployt werden und dann über den Classloader geladen werden.
Hauptsache: nicht direkt über das Filesystem.
 

HLX

Top Contributor
Bei kleinen Datenmengen mit i.d.R. lesendem Zugriff sind Text- bzw. XML-Dateien ein durchaus sinnvolles Mittel zur Datenverwaltung. Z.B. Anwendungskonfigurationen müssen nicht unbedingt in einer relationalen Datenbank gespeichert werden.

Ich sehe außerdem nicht, was gegen den Zugriff auf das lokale Filesystem des Servers spricht.
Wenn ich Daten zusammen mit der Anwendung deploye, muss ich bei einem Update jedesmal die Daten herauskopieren und nach dem Deployment wieder hineinkopieren, um den aktuellen Stand zu behalten. Wenn ich jedoch einen zentralen Ablageort auf dem Server bestimme, bleibt mir dieser Zusatzaufwand erspart. Wichtig ist m.E. lediglich, dass der Zugriff auf das Dateisystem nach außen verborgen wird. Ein Servlet darf keine Rückschlüsse darauf liefern, wo die Daten abgelegt sind.
 

FArt

Top Contributor
Ich sehe außerdem nicht, was gegen den Zugriff auf das lokale Filesystem des Servers spricht.
Eine (wie auch immer geartete) Enterpriseapplikation sollte keine Abhängigkeiten außerhalb des Laufzeitkontextes haben. Diese Abhängigkeiten machen Probleme (Fehlerquellen, Aufwand) in der Wartung und beim Deployment in unterschiedlichen Umgebungen (Entwicklung, QS, Produktion) und machen es oft praktisch unmöglich, die Applikation sinnvoll zu skalieren.

Zugriffe auf solche Ressourcen sollten über passende Adapter (ResourceAdapter) gekapselt und abstrahiert werden.
The J2EE Connector Architecture's Resource Adapter, für Files z.B. mit
File Resource Adapter | Get File Resource Adapter at SourceForge.net
 

Mole23

Aktives Mitglied
Wenn es nur darum geht ein file zu lesen und in der Console auszugeben, hätte ich folgende Lösung am Start: Evtl. besteht ja Interesse...

Code:
package Datenbank;

import java.io.*;
class FileRead 

{
   public static void main(String args[])
  {
    try{
    
    FileInputStream einlesen = new FileInputStream("C:\\test.txt");

    DataInputStream in = new DataInputStream(einlesen);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    
    String inhalt;
    while ((inhalt = br.readLine()) != null)   {
     
    System.out.println(inhalt);
    }

    in.close();
    
    }catch (Exception e){
      System.err.println("Error: " + e.getMessage());
    }
  }
}
 

FArt

Top Contributor
Wenn es nur darum geht ein file zu lesen und in der Console auszugeben, hätte ich folgende Lösung am Start: Evtl. besteht ja Interesse...

Code:
package Datenbank;

import java.io.*;
class FileRead 

{
   public static void main(String args[])
  {
    try{
    
    FileInputStream einlesen = new FileInputStream("C:\\test.txt");

    DataInputStream in = new DataInputStream(einlesen);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    
    String inhalt;
    while ((inhalt = br.readLine()) != null)   {
     
    System.out.println(inhalt);
    }

    in.close();
    
    }catch (Exception e){
      System.err.println("Error: " + e.getMessage());
    }
  }
}

Sicher doch! Ich verstehe gar nicht, warum noch keiner auf diese grandiose Idee gekommen ist! *Hand-vors-Hirn-hau*
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Datei lesen Allgemeines EE 2
E Festlegen ob Datei überschrieben werden soll. Allgemeines EE 1
F Bestandteile einer WSDL Datei verstehen. Allgemeines EE 1
B eine vom Admin hochgeladene csv -Datei in der Datatable auch von jedem User sichtbar Allgemeines EE 0
P JSF Wohin kommt die .db Datei der Datenbank? Allgemeines EE 2
P Tomcat lädt falsche Datei obwohl richtig angegeben Allgemeines EE 11
A Mit NetBeans .war-Datei erzeugen Allgemeines EE 3
MQue Datei vom Server downloaden Allgemeines EE 2
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
B fmt:setBundle => Wo liegt die Properties-Datei im Tomcat? Allgemeines EE 3
L .war Datei hochladen Allgemeines EE 6
TRunKX hx:commandExButton DAtei erstellen und dem User zum Download Allgemeines EE 7
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
T Cookie setzen in einer JSP Datei Allgemeines EE 4
K .jar Datei zu eclipse importieren Allgemeines EE 3
M datei liste (jsp,html) von einem Server Allgemeines EE 4
G WebApp (mit Tomcat) Wie kann meine Klasse eine Datei laden? Allgemeines EE 7
N Datei außerhalb der Webanwendung schreiben. Allgemeines EE 9
Z Property Datei in Servlets Allgemeines EE 2
K Prozess-Handling einer Batch-Datei mittels JSP Allgemeines EE 3
P AJAX Datei Upload Allgemeines EE 4
S .war Datei erzeugen unter Eclipse Allgemeines EE 2
rambozola dynamische webseiten aus datei Allgemeines EE 11
G Tomcat und meine .class Datei: Wohin damit und wie läuft sie Allgemeines EE 4
S Struts 1.1 download einer Datei Allgemeines EE 4
K Datei schreiben in einer Web-Application Allgemeines EE 3
S IBM WebSphere - Hinzufügen einer Datei Allgemeines EE 4
S Property Datei Allgemeines EE 6
T JSP: Datei mit dem Namen des BenutzerId speichern Allgemeines EE 4
S "Das System kann die angegebene Datei nicht finden&quot Allgemeines EE 4
G Datei lokal speichenrn --> jsp/Struts/oracle Allgemeines EE 4
B jsp include von html-datei mit javascript abfrage Allgemeines EE 8
F Spring Microservices...Lesen und Schreiben über ein Microservice ? Allgemeines EE 4
A (EJB)Session abhängige Parameter in POJO lesen Allgemeines EE 3
B Problem beim Lesen des Codes... Allgemeines EE 2
S Daten in Java schreiben und PHP lesen Allgemeines EE 8
M Attribute setzen/lesen zwischen JSP & Servlet nicht mögl Allgemeines EE 4
N Tomcat -> Binary aus DB lesen und an Browser/Client sende Allgemeines EE 9
thE_29 Vor dem ersten Posten bitte lesen! Allgemeines EE 0
T Werte aus einer Auswahliste mit Mehrfachauswahl lesen Allgemeines EE 4

Ähnliche Java Themen

Neue Themen


Oben