我正在运行的代码位于/Test1/Example
。如果我需要在/Test1
中读取.txt文件,如何让Java在目录树中返回1级,然后读取我的.txt文件
我搜索过/搜索过,但却找不到在不同位置读取文件的方法。
我在位于/Test1/Test2/testing.htm的.htm文件中运行java脚本。它写的是脚本src=" "
。如果我从/Test1/example.txt
的文件中读取它,我会在引文中加入什么。
答案 0 :(得分:2)
在Java中,您可以使用getParentFile()遍历树。所以你在/ Test1 / Example目录中启动了你的程序。并且您希望将新文件写为/Test1/Example.txt
File currentDir = new File(".");
File parentDir = currentDir.getParentFile();
File newFile = new File(parentDir,"Example.txt");;
显然,有多种方法可以做到这一点。
答案 1 :(得分:1)
您应该可以使用“../"
的父目录引用您可能需要对操作系统进行检查,以确定您应该使用哪个目录分隔['\'与'/'相比]
答案 2 :(得分:1)
在Java中创建File
对象时,可以为其指定路径名。您可以使用绝对路径名或相对路径名。使用绝对值来做你想要的事情:
File file = new File("/Test1/myFile.txt");
if(file.canRead())
{
// read file here
}
如果要从位置/ Test1 /示例:
运行,请使用亲戚路径File file = new File("../myFile.txt");
if(file.canRead())
{
// read file here
}
答案 3 :(得分:1)
我有类似的经历。 我的要求是:我在一个目录“input”下有一个名为“sample.json”的文件,我的目录“testcase”下有一个名为“JsonRead.java”的java文件。所以,整个文件夹结构就像无标题/ splunkAutomation / src,在这下我有文件夹输入,testcase。
编译程序后,您可以在名为“out / production / yourparentfolderabovesrc / input”的文件夹下找到名为“sample.json”的输入文件副本,在名为“out”的文件夹下看到名为“JsonRead.class”的类文件出/生产/ yourparentfolderabovesrc /测试用例”。因此,在运行时,Java实际上会引用这些文件而不是我们在“src”下的实际.java文件。
所以,我的JsonRead.java看起来像这样,
package testcase;
import java.io.*;
import org.json.simple.JSONObject;
public class JsonRead{
public static void main(String[] args){
java.net.URL fileURL=JsonRead.class.getClass().getResource("/input/sample.json");
System.out.println("fileURL: "+fileURL);
File f = new File(fileURL.toURI());
System.out.println("fileIs: "+f);
}
}
这会给你输出,如, fileURL:file:/ C:/Users/asanthal/untitled/out/production/splunkAutomation/input/sample.json fileIs:C:\ Users \ asanthal \ untitled \ out \ production \ splunkAutomation \ input \ sample.json
答案 4 :(得分:0)
它对我有用。我在文件夹中保存了所有类,但是我需要从classes文件夹的父目录中读取输入文件。这完成了这项工作。
String FileName = "Example.txt";
File parentDir = new File(".."); // New file (parent file ..)
File newFile = new File(parentDir,fileName); //open the file