CSV Datei Hilfe zur Aufgabe bidde

saftmeister

Nutze den Saft!
Du kannst es debuggen und dann schauen, welche Variable das Problem verursacht. Falls dir Debuggen aber noch zu komplex ist, kann ich dir folgendes anbieten:

Java:
   private static Path locateFileWithType(String msg, String... contentTypes)
         throws IOException {
      JFileChooser fc = new JFileChooser();
      File f = null;
      Path p = null;
      while (true) {
         int returnVal = fc.showDialog(null, msg);
         if (returnVal == JFileChooser.APPROVE_OPTION) {
            f = fc.getSelectedFile();
            System.out.println("f = " + f.getAbsolutePath());
            p = f.toPath();
            if (Files.isRegularFile(p) && Files.isReadable(p)) {
               System.out.println("Datei hat den Typ " + Files.probeContentType(p));
               for (String type : contentTypes) {
                  if (Files.probeContentType(p).equals(type)) {
                     return p;
                  }
               }
            }
            else
            {
               System.out.println("Datei ist keine reguläre Datei oder nicht lesbar.");
            }
            JOptionPane.showMessageDialog(null,
                  "Die Datei hat nicht den richtigen Typ");
         } else
            break;
      }
      return null;
   }

Beachte die Meldungen in der Konsole. Was siehst du da?
 

julia123

Erfahrenes Mitglied
er zeigt mir diese meldung (kanns nicht ausführen) ;The method locateFileWithType(String, String...) from the type Test is never used locally

Bei zeile 1

so sieht mein code aus :
Code:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
 
public class Test {
   /**
    * Lokalisiert Datei mit einem der vorgebenen MIME-Typen.
    *
    * @param msg
    *            Text fuer die Dateiauswahl
    * @param contentTypes
    *            Liste von Typen, von denen einer der Datei zugeornet sein muss
    * @return Pfad der ausgwaehlten Datei
    * @throws IOException
    */
	 private static Path locateFileWithType(String msg, String... contentTypes)
	         throws IOException {
	      JFileChooser fc = new JFileChooser();
	      File f = null;
	      Path p = null;
	      while (true) {
	         int returnVal = fc.showDialog(null, msg);
	         if (returnVal == JFileChooser.APPROVE_OPTION) {
	            f = fc.getSelectedFile();
	            System.out.println("f = " + f.getAbsolutePath());
	            p = f.toPath();
	            if (Files.isRegularFile(p) && Files.isReadable(p)) {
	               System.out.println("Datei hat den Typ " + Files.probeContentType(p));
	               for (String type : contentTypes) {
	                  if (Files.probeContentType(p).equals(type)) {
	                     return p;
	                  }
	               }
	            }
	            else
	            {
	               System.out.println("Datei ist keine reguläre Datei oder nicht lesbar.");
	            }
	            JOptionPane.showMessageDialog(null,
	                  "Die Datei hat nicht den richtigen Typ");
	         } else
	            break;
	      }
	      return null;
	   }
}

und wenn ich das ausführen will fragt der micht ob ich es als :Runs a Java applet oder Runs a local Java application. kenne den unterscheid nicht
 

sheel

I love Asm
Die oben genannte Meldung ist ziemlich sicher nur eine Warnung.
Und in deinem Code fehlt ein main :rolleyes:

Bitte Netiquette beachten.
 

julia123

Erfahrenes Mitglied
tut mir leid ich komm nicht weiter. ja eine warnung sorry :( bin voll schwach.


also so was kommt bei mir rauss:

f = C:\test\Neues Textdokument.csv
Datei hat den Typ application/vnd.ms-excel
 
Zuletzt bearbeitet:

saftmeister

Nutze den Saft!
Na da hast du doch dein Problem: Dateityp ist als application/vnd.ms-excel erkannt worden, du liest aber nur Typen von "text/csv" bzw. "text/comma?separated?values" ein. Füg doch mal in der Main-Methode

Java:
public static void main(String[] args) throws IOException {
      Path path = locateFileWithType("CSV Datei", "text/csv",
            "text/comma-separated-values", "application/vnd.ms-excel"); // Hier habe ich "application/vnd.ms-excel" hinzugefügt.
      JOptionPane.showMessageDialog(null, "Sie haben gewaehlt:" + path);
   }

Beachte den Kommentar hinter den //.
 

julia123

Erfahrenes Mitglied
ok, jetzt noch mal eine andere frag hab ich damit jetzt nicht gegen irgendwelchen vorschriften verstosen.

ich will ja CSR datein einlesen lassen und nicht vnd.ms-excel ?
da blick ich nicht durch.
 

saftmeister

Nutze den Saft!
Hmm, ich habe kein Excel und weiß nicht, was da beim Speichern als CSV genau für eine Datei raus kommt. Die Endung der Datei, die du einlesen willst, lautet wie? Wenn sie .xls oder dergleichen lautet, ist das wahrscheinlich schon mal nicht korrekt.
 

julia123

Erfahrenes Mitglied
ok verstoss ich jetzt jeodch nicht gegen die vorschift. das ich csv datei einlese und nicht vnd.ms-excel.
ich will ja csv datein öffnen. oder vesteh ich da entwas falsch ?
 

saftmeister

Nutze den Saft!
Du hast aber eine Datei ausgewählt, die offenbar vom Typ "application/vnd.ms-excel" ist. Die Frage ist, welche Endung hat die von dir ausgewählte Datei, bzw. wie hast du die Datei in Excel den abgespeichert?

Gegen welche Vorschriften solltest du verstoßen?

sheel hat dich lediglich gebeten, dich an die Netiquette zu halten, wahrscheinlich weil dein Satzbau und die Rechtschreibung mit unter eine Katastrophe ist ;-)

EDIT: Achja, Mehrfach-Postings sind auch nicht erwünscht. Bitte bearbeite deinen Beitrag, wenn es der letzte im Thread ist.
 

sheel

I love Asm
(und wegen dauerndem Posten von mehreren Beiträgen hintereinander,
statt den Bearbeitenbutton zu benutzen usw...)

Aber vermutlich meint sie ihre Aufgabe, was da vom Lehrer akzeptiert wird und was nicht.