File in Subclass

steffenxyz

Grünschnabel
Hey,
ich hab ein Problem mit meinem Java App und komm nich weiter...
Also:
Ich erstell ne ganz normale Datei: File f = new File("test.txt"); zB in irgendnem Einklassen App, funktioniert wunderbar

Wenn ich den gleichen Quellcode jedoch in ein größeres und komplexeres Programm umwandel, bekomm ich unterschiedliche und komische Probleme.

QuellCode ader tut, als eine Datei
Code:
import java.io.*;
import java.awt.*;

public class TouchALt
{
  public void init()
  {
      String s = "test.txt";
      File f = new File( s );


        try
        {
          f.createNewFile();
          Label testLbl=new Label("toll");
        } catch ( IOException e ) { e.printStackTrace(); }
      }


}
------------------------------------------------------------------------------------
Der Code tut ned:

Subclass die Aufgerufen wird
Code:
//Add.java
import java.io.*;
import java.awt.*;

public class Add extends Touch{


  public void Add(){

  }
  



  public void create_gameFile(){

             File f = new File("test.txt");
             try{

                 f.createNewFile();
             }
             catch(IOException e){

             }
  }
  // Ende Methoden

}

Wird von hier aufgerufen:
Code:
import java.io.*;
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class Touch extends Applet implements ActionListener


  // Anfang Attribute
  // Ende Attribute

{
  private Add test;
  // Anfang Methoden
  public void init(  )
  {

         test = new Add();
         test.create_gameFile();

    // Anfang Komponenten
    // Ende Komponenten
  }
  
  public void actionPerformed(ActionEvent e){

  }
  // Ende Methoden
}

Is zwar stark vereinfach der Code, aber ich versteh nich wo des Problem liegt?
 
Hallo,

was heißt denn der Code geht nicht?
Vielleicht solltest du auch mal den stackTrace im catch-Block ausgeben lassen. So siehst du, ob es einen Fehler gibt beim erstellen der Datei.

Zudem darf ein Applet normal keine Datei erstellen.

Gruß

Sascha
 
Zudem darf ein Applet normal keine Datei erstellen.
echt jetzt? hab noch nich soviel erfahrung in java... davor nur c/c++ und da konsolenapps da war des egal-.-
und was sollte ich sonst nehmen außer applets? Habs halt im Info Grundkurs in der Schule so gelernt, allerdings haben die mit Dateien einlesen noch ned so viel gemacht:D

mfg Steffenxyz
 
Ein Applet wird im Browser ausgeführt. Stell dir den Browser wie eine Art Käfig vor, aus dem nichts raus darf. Auch nicht ins Dateisystem. Um Daten zu persistieren, wird dir nichts anderes übrig bleiben, als das auf den Server auszulagern. In welcher Form auch immer... :-)
 
Hey,
danke für die gute Erklärung, wusst ich nich, hat unser Lehrer irgendwie nich erwähnt -.-

Das fertige Programm später soll auch ne Server Edition haben die auch Daten einliest, aber ich brauche es auch evtl. das die Clients Dateien einlesen können.
Gibt es da eine Möglichkeit, bzw. wenn nicht Applet, was dann?

MfG Steffenxyz
 
Hallo,

damit ein Applet auf einen Client-Rechner eine Datei schreiben oder auslesen darf, mußt du das Applet signieren.

MfG
hansmueller
 
Wie schon gesagt wurde, müsstest du das Applet signieren, dann sollte das klappen. Wenn der Benutzer der Signatur vertraut, dann haste mehr Rechte, andernfalls nicht.

Hey,
danke für die gute Erklärung, wusst ich nich, hat unser Lehrer irgendwie nich erwähnt -.-

Das fertige Programm später soll auch ne Server Edition haben die auch Daten einliest, aber ich brauche es auch evtl. das die Clients Dateien einlesen können.
Gibt es da eine Möglichkeit, bzw. wenn nicht Applet, was dann?

MfG Steffenxyz

Was heißt "was dann"? Musst du unbedingt eine Anwendung schreiben, die "online" zur Verfügung steht? Dann schau dir mal WebStart an, aber wenn es auch eine normale Anwendung sein kann, dann mach es doch so, dann hast du auch sofort entsprechende Rechte. Das Fenster wäre dann kein Applet mehr, sondern nen Frame oder JFrame, je nachdem ob du AWT oder Swing verwenden willst. Normale Desktop-Anwendungen können auch online gehen, falls das deine Sorge ist.
 
Zurück