Java IO 不能创建新文件,求解答

问题遇到的现象和发生背景

能够访问文件名,但是不能重命名文件,也不能创建新文件

问题相关代码,请勿粘贴截图

File f = new File(" F:\workspace\IOtest\t.txt");
System.out.println(f.getName()); //获取文件名
//System.out.println(f.getPath()); //获取文件路径,在创建文件对象是使用的是绝对路径,获取的就是绝对路径,反之就是相对路径

    System.out.println(f.renameTo(new File(" F:\\workspace\\IOtest\\t2.txt")));                  //参数为File对象
    System.out.println(f.getName());        //获取重命名之后的文件名

File f4 = new File(" F:\workspace\IOtest\t2.txt");
if(!f4.exists()){
try {
f4.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

上面还是有转义字符的 这里怎么没了

img

File f = new File(" F:\workspace\IOtest\t.txt");
这行的路径不对,要么是 \ 双斜杠,要么是 / 单斜杠
双右斜杠是 windows 的奇葩写法,左单斜杠是 unix和Linux的写法,无论你选择哪一种,代码会帮你适配当前系统

public static void main(String[] args) {
//获取文件对象
File f = new File(" F:/workspace/IOtest/t.txt");
System.out.println(f.getName()); //获取文件名
//System.out.println(f.getPath()); //获取文件路径,在创建文件对象是使用的是绝对路径,获取的就是绝对路径,反之就是相对路径

    System.out.println(f.renameTo(new File(" F:/workspace/IOtest/t2.txt")));                  //参数为File对象
    System.out.println(f.getName());        //获取重命名之后的文件名

    File f4 = new File(" F:/workspace/IOtest/t2.txt");
    if(!f4.exists()){
        try {
            f4.createNewFile();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

img

我的代码里是双斜杠的,只是复制过来的时候自动变成单斜杠了,改成反斜杠还是一样