Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Nejde mi vytvořit soubor.

Java Java Nejde mi vytvořit soubor.

Aktivity (1)
Avatar
javakoder1
Člen
Avatar
javakoder1:6.11.2014 21:48

Ahoj nejde mi vytvořit soubory do složky, kterou předtím vytvořím. Nevíte čím to je?

public void createViews(String controller, String[] views) throws IOException{
        this.path = "View/"+controller;
        file = new File(path);
        file.mkdir();
        for(String view : views){
            String cesta = path+"/"+view+".php";
            file = new File(path);
            fileWriter = new FileWriter(file);
            buffWriter = new BufferedWriter(fileWriter);
            file.createNewFile();
            fileWriter.write("<h1>"+view+"<h1>");
            turnOff();
        }
    }

Tohle je metoda, která by měla soubory vytvořit.
Píše mi to "Přístup byl odepřen."

 
Odpovědět 6.11.2014 21:48
Avatar
Hit
Člen
Avatar
Hit:6.11.2014 21:56

Zkusil bych to upravit:

String cesta = path+"\\"+view+".php";
Nahoru Odpovědět 6.11.2014 21:56
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na javakoder1
Silvinios:6.11.2014 22:02

Na kterém řádku dochází k výjimce?
Proč voláš metodu createNewFile? K vytvoření souboru by mělo dojít v konstruktoru třídy FileWriter.
Proč vytváříš objekt BufferedWriter, ale zapisuješ pomocí fileWriter?

 
Nahoru Odpovědět 6.11.2014 22:02
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:6.11.2014 22:02
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View\\"+controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path+"\\"+view+".php";
             file = new File(path);
             fileWriter = new FileWriter(file);
             buffWriter = new BufferedWriter(fileWriter);
             file.createNewFile();
             fileWriter.write("<h1>"+view+"<h1>");
             turnOff();
         }
     }

Pořád nefunguje.

 
Nahoru Odpovědět 6.11.2014 22:02
Avatar
javakoder1
Člen
Avatar
Odpovídá na Silvinios
javakoder1:6.11.2014 22:04

ani tohle nefunguje:

public void createViews(String controller, String[] views) throws IOException{
         this.path = "View\\"+controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path+"\\"+view+".php";
             file = new File(path);
             fileWriter = new FileWriter(file);
             //buffWriter = new BufferedWriter(fileWriter);
             //file.createNewFile();
             fileWriter.write("<h1>"+view+"<h1>");
             turnOff();
         }
     }
 
Nahoru Odpovědět 6.11.2014 22:04
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na Hit
Silvinios:6.11.2014 22:05

Čistší je použít File.separator:

String cesta = path + File.separator + view + ".php";
 
Nahoru Odpovědět 6.11.2014 22:05
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:6.11.2014 22:05

Divný, zkoušel sis vypsat tu cestu před vytvořením toho souboru? Jen tak pro kontrolu

Nahoru Odpovědět 6.11.2014 22:05
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Odpovídá na javakoder1
Ladislav Ondris:6.11.2014 22:07

zkus: file.mkdirs();

Nahoru Odpovědět 6.11.2014 22:07
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:6.11.2014 22:08

Ano souhlasí.

 
Nahoru Odpovědět 6.11.2014 22:08
Avatar
javakoder1
Člen
Avatar
javakoder1:6.11.2014 22:10
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View"+ File.separator +controller;
         file = new File(path);
         file.mkdir();
         for(String view : views){
             String cesta = path + File.separator + view + ".php";
             file = new File(path);
             file.createNewFile();

             turnOff();
         }
     }

Tohle mi sice nevyhodí chybu, ale do složky se nové soubory nevytvoří :(
Tak já už fakt nevím.

 
Nahoru Odpovědět 6.11.2014 22:10
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:6.11.2014 22:14

Myslím, že to je System.getPro­perty("file.se­parator");

Nahoru Odpovědět 6.11.2014 22:14
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:6.11.2014 22:23
this.path = "View"+ File.separator +controller;
        for(String view : views){
            String cesta = path + File.separator + view + ".php";
            new File(cesta).mkdirs();
            file = new File(cesta);
            file.createNewFile();

            System.out.println(cesta);

        }

Tohle mi jde. Akorát vytváří složky. Chci soubory prvni.php, druhy.php a místo toho se mi vytvoří složky. Nevíš čím to je?

 
Nahoru Odpovědět 6.11.2014 22:23
Avatar
Hit
Člen
Avatar
Odpovídá na javakoder1
Hit:6.11.2014 22:25

Protože máš v každým cyklu

new File(cesta).mkdirs();
Nahoru Odpovědět 6.11.2014 22:25
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:6.11.2014 22:38
public void createViews(String controller, String[] views) throws IOException{
         this.path = "View"+ File.separator +controller;
         for(String view : views){
             String cesta = path + File.separator + view + ".php";
             File f1 = new File(path);
             File f = new File(cesta);
            f1.mkdirs();
            f.createNewFile();
             System.out.println(cesta);

             write(path, view);
         }
     }


    private void write(String path, String name) throws IOException{
        try (BufferedWriter bw = new BufferedWriter(new FileWriter(new File(path)))) {
            bw.write("<h1>"+name+"<h1>");
        }
    }

Teď už se všechno vytvoří jak má, ale do nového souboru .php nemůžu nic zapsat. "Přístup byl odepřen". Tohle je noční můra.

Editováno 6.11.2014 22:39
 
Nahoru Odpovědět 6.11.2014 22:38
Avatar
javakoder1
Člen
Avatar
Odpovídá na Hit
javakoder1:6.11.2014 22:41

Jo konečná verze. Už to funguje jak má :D

public void createViews(String controller, String[] views) throws IOException{
        this.path = "View"+ File.separator +controller;
        for(String view : views){
            String cesta = path + File.separator + view + ".php";
            File f1 = new File(path);
            File f = new File(cesta);
           f1.mkdirs();
           f.createNewFile();
            System.out.println(cesta);

            write(f, view);
        }
    }

   private void write(File file, String name) throws IOException{
       try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
           bw.write("<h1>"+name+"<h1>");
       }
   }
Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět 6.11.2014 22:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.