Java 如何使用FileRead读取文本?

Java 如何使用FileRead读取文本?,java,netbeans,Java,Netbeans,我在两台电脑上做一个项目,第一台在工作,第二台在家。当我使用FileRead时,我需要更改FileRead需要读取的位置。 例如在家里,它是这样的: ReadFile rf = new ReadFile("C:\\Users\\Home\\Desktop\\Project\\src\\triangle3d\\TheText.ase"); 当我给自己发电子邮件并在工作场所打开时,每次我都需要将其更改为: ReadFile rf = new ReadFile("C:\\Users\\Work\\D

我在两台电脑上做一个项目,第一台在工作,第二台在家。当我使用
FileRead
时,我需要更改
FileRead
需要读取的位置。 例如在家里,它是这样的:

ReadFile rf = new ReadFile("C:\\Users\\Home\\Desktop\\Project\\src\\triangle3d\\TheText.ase");
当我给自己发电子邮件并在工作场所打开时,每次我都需要将其更改为:

ReadFile rf = new ReadFile("C:\\Users\\Work\\Desktop\\Project\\src\\triangle3d\\TheText.ase");
现在有没有一种方法可以在不说明位置的情况下找到text.ase? 这行吗

ReadFile rf = new ReadFile("TheText.ase");

您可以创建一个方法,在您所在的计算机上查找,然后加载文件: 您只需在下面的is语句中输入工作计算机和家庭计算机的名称。该名称是您的网络名称或您第一次启动计算机时给它的名称

    String name = InetAddress.getLocalHost().getHostName();
    if(name.equals("computerNameHome")){//home computer name
        ReadFile rf=new ReadFile("C:\Users\Home\Desktop\Project\src\triangle3d\TheText.ase");   
    }else if(name.equals("computerNameWork")){//work computer name
        ReadFile rf=new ReadFile("C:\Users\Work\Desktop\Project\src\triangle3d\TheText.ase");   
    }
希望这有帮助:)


编辑:这取决于DNS,因此您需要internet访问来完成此操作。

一种可能是找到您的桌面文件夹,然后从那里转到文件,因为这在两台计算机上都是相同的

ReadFile rf=new ReadFile(System.getProperty("user.home") + File.separator + "Desktop" + "\Project\src\triangle3d\TheText.ase");
这甚至可能比我的另一个答案更好,因为它不依赖于DNS,所以不需要访问internet


希望这有帮助:)

您可以通过项目树中的相对路径名访问该文件

private static void answer() {
    final String relativePath = "src/triangle3d/TheText.ase";
    File ase = new File(relativePath);
    System.out.printf("absolute path: '%s'%n", ase.getAbsolutePath());
    System.out.printf("is '%s' a file: %s%n", relativePath, ase.isFile());
}

不,但最简单的方法是创建一个可以为您完成此任务的方法,您希望我给出一个答案吗?如果这始终是您正在读取的同一个文件,那么您可以将其放置到项目目录中,您可以访问它,而无需提供其绝对路径。例如,您的类(“当前位置”)位于/Desktop下,同样的相对路径也适用,因为绝对路径开始与Desktop和Desktop上的路径不同。
ReadFile rf=new ReadFile(System.getProperty("user.home") + File.separator + "Desktop" + "\Project\src\triangle3d\TheText.ase");
private static void answer() {
    final String relativePath = "src/triangle3d/TheText.ase";
    File ase = new File(relativePath);
    System.out.printf("absolute path: '%s'%n", ase.getAbsolutePath());
    System.out.printf("is '%s' a file: %s%n", relativePath, ase.isFile());
}