首先 - 我在Stackoverflow上爱你们!每个人都非常乐于助人!可悲的是,当我回答问题时,他们对我来说太过分了:'(
我想将文本文件保存到文件夹中 - 但不是绝对文件夹,例如我想将其保存到
{class location} /text/out.txt
因为程序正在不同的计算机上运行,所以位置会发生变化,所以我不能把C:// ect
我也知道我需要怀疑“\\” - 但这在我的尝试中不起作用
public void writeFile (int ID, int n) {
try{
String Number = Integer.toString(n);
String CID = Integer.toString(ID);
FileWriter fstream = new FileWriter("//folder//out.txt",true); //this don't work
BufferedWriter out = new BufferedWriter(fstream);
out.write(Number+"\t"+CID);
out.newLine();
out.close();
}//catch statements etc
答案 0 :(得分:6)
你可以使用getAbsolutePath()函数:
FileWriter fstream = new FileWriter(new File(".").getAbsolutePath()+"//folder//out.txt",true);
我建议你看看this主题
答案 1 :(得分:0)
在代码目录中创建名为text的文件夹是独立于文件系统的。要在{project folder}/text/out.txt
中创建文件,您可以尝试以下操作:
String savePath = System.getProperty("user.dir") + System.getProperty("file.separator") + text;
File saveLocation = new File(savePath);
if(!saveLocation.exists()){
saveLocation.mkdir();
File myFile = new File(savePath, "out.txt");
PrintWriter textFileWriter = new PrintWriter(new FileWriter(myFile));
textFileWriter.write("Hello Java");
textFileWriter.close();
}
别忘了赶上IOException
!
答案 2 :(得分:0)
将.txt保存到文件夹根目录的最简单方法是执行此操作:
public class MyClass
{
public void yourMethod () throws IOException
{
FileWriter fw = null;
try
{
fw = new FileWriter ("yourTxtdocumentName.txt");
// whatever you want written into your .txt document
fw.write ("Something");
fw.write ("Something else");
System.out.println("Document completed.");
fw.close
}
catch (IOException e)
{
e.printStackTrace();
}
} // end code
} // end class
然后您可以随时调用此方法,它会将您编码的任何内容保存到.txt文档中,并保存到项目文件夹的根目录中。
然后,您可以在任何计算机上运行您的应用程序,它仍然会保存文档以便在任何计算机上查看。
答案 3 :(得分:-1)
您应首先创建目录,然后创建文件。记得首先检查它们的存在:
new File("some.file").exists();
new File("folder").mkdir(); // creates a directory
new File("folder" + File.separator + "out.txt"); // creates a file
如果资源已经存在,则无需创建File
对象。
File.separator
是您使用斜杠进行本地化问题的答案。