什么是相对路径和绝对路径? 绝对路径是带有盘符信息的路径,如D:\\workspace 相对路径就是没有盘符信息 如:images/test.txt。
最近在写文件写入写出的代码时,想如何创建一个只包含文件名的路径,并且可以被访问到?
1.绝对路径下进行文本读写。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class FileTest {
public static void main(String[]args) throws IOException {
File file = new File("E:\\test.txt");
if(!file.exists()) {
System.out.println("文件不存在");
//file.mkdirs();
file.createNewFile();
}
FileWriter osw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(osw);
String s ="wasane";
bw.write(s);
bw.newLine();
bw.close();
}
}
在E盘下创建了test.txt文本。
如何创建相对路径的文件呢?跟上述也是一样,我们要找到相对路径的地方在哪里。如果没有这个路径,让系统创建这个路径。并且获取创建这个文件的绝对路径。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileTest {
public static void main(String[]args) throws IOException {
File file = new File("test.txt");
if(!file.exists()) {
System.out.println("文件不存在");
//file.mkdirs();
file.createNewFile();
}
FileWriter osw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(osw);
String s ="wasane";
bw.write(s);
bw.close();
System.out.println(file.getAbsolutePath());//获取文件的绝对路径
}
}
运行之后发现,是在项目文件下创建的,与src同级
点击项目名,然后右键点击Refresh就可以发现项目下多了一个test.txt。
所以,如果我们要创建一个只包含文本名的路径,那么就可以直接在项目名下创建文本。
1.点击项目名。testcsdn
2.鼠标右键--》New --》File
那么在src级下的呢?在text.txt前面添加一个\ ,就可以访问了,跟访问图片包一样。
在src级下的类的路径叫做类路径,也是该类的根路径,如果某类在src下,要寻找该的路径也可以使用另外一个通用的方法。就是获取该项目在本机中的当前的绝对路径。不是自己写上去的绝对路径,而是通过类加载器去动态获取。
String path = Thread.currentThread().getContextClassLoader().
getResource("a/Test01.txt").getPath();
System.out.println(path);
其中getResource("path"),要写全包名,并且具体的文件或类要写明后缀,类的话则是.class后缀。