【发布时间】:2017-11-10 13:51:22
【问题描述】:
我正在尝试学习如何在 Java 上创建文件并对其进行写入。我一直在网上观看有关如何操作的视频。不幸的是,使用与上课的人完全相同的代码,我想出了这些我不明白的错误。
java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at CompanyAdder.main(CompanyAdder.java:26)
java.io.FileNotFoundException: C:/Users/mychalco/Desktop/ASreader.txt (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at java.io.FileWriter.<init>(FileWriter.java:90)
at CompanyAdder.main(CompanyAdder.java:35)
我知道第 26 行和第 35 行显然存在错误,但我不明白还发生了什么。这是我的代码:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
public class CompanyAdder
{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
// TODO Auto-generated method stub
//String addCompanyName = "Y";
//String companyName;
File newFile = new File("C:/Users/mychalco/Desktop/ASreader.txt");
if(newFile.exists())
{
System.out.println("The file already exists");
}
else
{
try
{
newFile.createNewFile();
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
FileWriter fileW = new FileWriter(newFile);
BufferedWriter buffW = new BufferedWriter(fileW);
/*System.out.println("Add a company name: ");
while (addCompanyName.equalsIgnoreCase("Y"))
{
companyName = sc.next();
buffW.write(companyName);
System.out.println("Do you want to add another company? (Y/N) ");
addCompanyName = sc.next();
}*/
buffW.close();
System.out.println("Company names added!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
忽略注释行,这些是我试图对代码进行的一些更改。
谢谢,干杯。
【问题讨论】:
-
你可以试试这个
File newFile = new File("C:\\Users\\mychalco\\Desktop\\ASreader.txt"); -
如果你的代码和人一模一样,那你有没有
C:/Users/mychalco/Desktop/ASreader.txt的文件 -
您使用的是 windows 还是 unix/linux 系统?您的文件路径是 windows,但基于错误消息的第 2 行 Java 认为它正在 Unix 上运行。
-
@YCF_L:Windows 可以很好地处理正斜杠。
-
谢谢@JonSkeet
标签: java file filewriter bufferedwriter file-writing