2013-07-06 1 views
1
package javaapplication33; 

import java.io.File; 
import java.io.IOException; 


public class JavaApplication33 { 

public static void main(String[] args) throws IOException{ 


    File happyFile = new File("/happy.txt"); 
    if (happyFile.exists() == false) { 
     happyFile.createNewFile(); 
     System.out.println("the file is created"); 
    } else { 
     System.out.println("tHE FILE ALREADY EXSISTED "); 
    } 
    } 
} 

здесь моя ошибка:Я пытаюсь сохранить свой файл на диске С, и им получать ошибки

Exception in thread "main" java.io.IOException: The system cannot find the path specified 
at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
at java.io.File.createNewFile(File.java:883) 
at javaapplication33.JavaApplication33.main(JavaApplication33.java:14) 

Java Результат: 1

  • Я пробовал C: // & C:/it все еще не сработало *
+2

Вы пытались создать папку внутри C: \? например C: \ Temp, могут быть связаны с разрешениями (запись в корневую папку). – Ofiris

+0

, если это необязательно, не используйте файл C, потому что ему нужно разрешение. – pooyan

+1

Хорошо, это сработало. Спасибо за помощь. – pur3extrme

ответ

2

Если вам нужно писать по определенному пути в Windows, вам необходимо использовать Приведенные обратные косые:

File happyFile = new File("c:\\mydir\\happy.txt"); 

Чтобы сделать код родовым вы можете использовать разделитель пути и домашний каталог из system properties.

+0

+1 для беглых обратных косых черт. –

2

Я не думаю, что «/happy.txt» - это допустимый путь к файлу Windows. Попробуйте путь, который всегда должен быть действительным

import java.io.File; 
import java.io.IOException; 

public class WriteToDisk { 
    public static void main(String[] args) throws IOException { 
     String tempDir = System.getProperty("java.io.tempdir"); 
     String separator = File.pathSeparator; 
     File happyFile = new File(tempDir + separator + "happy.txt"); 
     if (!happyFile.exists()) { 
      happyFile.createNewFile(); 
      System.out.println("the file is created"); 
     } 
     else { 
      System.out.println("tHE FILE ALREADY EXISTED"); 
     } 
    } 
} 

Это печатает «файл создается» в первый раз и «файл уже существует» любое последующее время.

+0

'System.lineSeparator();' возвращает строку '' 'nn '', а не разделитель путей' \ ' –

+0

Duh. Благодарю. Исправлена. –

+0

+1 для получения правильного разделителя путей системы;) –

Смежные вопросы