当我们写
时,内存中的确切位置是什么File file = new File("test");
相反,我们知道
File file = new File("C:\test");
将在C盘中创建
答案 0 :(得分:7)
默认情况下它将是您的工作区。你可以用它看到它;
System.out.println(file.getAbsolutePath());
答案 1 :(得分:2)
除非您执行任何操作将其放在不同的目录中或更改Java的当前工作目录,否则File
对象对应于
System.getProperty("user.dir")
但是,File
并不一定与文件系统上的文件相对应;创建new File(...)
实际上并不在文件系统上创建文件。例如,您可以致电
file.exists()
可能会返回false
。
答案 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
希望它有所帮助!