新文件的内存路径是什么(" test")

时间:2016-06-09 07:52:46

标签: java

当我们写

时,内存中的确切位置是什么
File file = new File("test");

相反,我们知道

File file = new File("C:\test");

将在C盘中创建

4 个答案:

答案 0 :(得分:7)

默认情况下它将是您的工作区。你可以用它看到它;

System.out.println(file.getAbsolutePath());

答案 1 :(得分:2)

除非您执行任何操作将其放在不同的目录中或更改Java的当前工作目录,否则File对象对应于

下面的逻辑路径
System.getProperty("user.dir")

但是,File并不一定与文件系统上的文件相对应;创建new File(...)实际上并不在文件系统上创建文件。例如,您可以致电

file.exists()

可能会返回false

Error Message

答案 2 :(得分:1)

默认值是Java项目的工作空间。 如果您想知道默认位置,可以使用以下内容显示:

file.getAbsolutePath();

这将返回一个String对象,然后您可以使用该对象在控制台中显示。

请参阅此列表以了解未来的参考资料:

File file = new File("./../eclipse.ini");
file.createNewFile();
System.out.println(file.getAbsolutePath());// prints "C:\work\java\WS\java-io\.\..\eclipse.ini"
System.out.println(file.getCanonicalPath());// prints "C:\work\java\WS\eclipse.ini"
System.out.println(file.getParent()); // prints  ".\.."
System.out.println(file.getAbsoluteFile().getParent());// prints "C:\work\java\WS\java-io\.\.."
System.out.println(file.getName()); // prints "eclipse.ini"
System.out.println(file.getPath());// prints ".\..\eclipse.ini"
System.out.println(file.isAbsolute());// prints "false"

链接到来源:Click here

答案 3 :(得分:1)

假设

我认为在内存中,你的意思是在磁盘中。

解释

有两种类型的路径。引用wiki

中的定义
  • 绝对路径:
  

绝对路径或完整路径指向文件系统中的相同位置   不管当前的工作目录。要做到这一点,它必须   包含根目录。

  • 和,相对路径:
  

相比之下,相对路径从某个给定的工作目录开始,   避免提供完整的绝对路径。文件名可以是   被视为基于当前工作目录的相对路径。   如果工作目录不是文件的父目录,则是文件   如果文件的名称被寻址,将导致找不到错误。

为了提供帮助,我们需要知道你需要哪一个(绝对路径或相对路径)。

例子/答案

例如,如果您想知道public class LoginActivity extends AppCompatActivity { private static final int REQUEST_RUNTIME_PERMISSION = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); checkPremission(); //startService(new Intent(this, CriticalInformationService.class)); } void checkPremission() { //select which permission you want final String permission = Manifest.permission.SYSTEM_ALERT_WINDOW; // if in fragment use getActivity() if (ContextCompat.checkSelfPermission(LoginActivity.this, permission) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.shouldShowRequestPermissionRationale(LoginActivity.this, permission)) { } else { ActivityCompat.requestPermissions(LoginActivity.this, new String[]{permission}, REQUEST_RUNTIME_PERMISSION); } } else { // you have permission go ahead launch service startService(new Intent(this, CriticalInformationService.class)); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_RUNTIME_PERMISSION: final int numOfRequest = grantResults.length; final boolean isGranted = numOfRequest == 1 && PackageManager.PERMISSION_GRANTED == grantResults[numOfRequest - 1]; if (isGranted) { // you have permission go ahead launch service startService(new Intent(this, CriticalInformationService.class)); }else{ // you dont have permission show toast } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } } 文件的绝对路径,我们需要知道您的工作目录及其结构。

想象您有一个如下工作目录:

test.txt

在Windows中,它看起来像这样:

MyProject ---- Code ---- ----Main.c ---- Assets ---- ---- MyImage.png ---- Text.txt

如果您想知道相对路径,我们只需要知道您的工作目录的结构:

C:\User\Aakash\Desktop\Myproject\text.txt

希望它有所帮助!