gpt4 book ai didi

java - 简单的写入文件代码可以在java中运行,但不能在android设备上运行

转载 作者:行者123 更新时间:2023-12-02 06:41:05 26 4
gpt4 key购买 nike

我测试了这段代码,它在 java 中运行良好,并在我的笔记本电脑上编写了一个测试文件,但是无法让它在 Android 设备上运行。

我做了一个注释来显示空指针异常的位置。

当我在几个不同的 Android 设备上运行它时,结果是相同的。它在同一行代码中因空指针而崩溃。

什么会导致它在 java 桌面应用程序上正常工作并在 Android 设备上获取空指针?

有什么想法吗?

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

File makeDirectory = new File("/mnt/testDirectory/");

// File makeDirectory = new File("C:/testDirectory/"); // when used on
// java desktop app

makeDirectory.mkdir();

File file = new File("/mnt/testDirectory/testfile.txt");

// File file = new File("C:/testDirectory/testfile.txt"); // when used
// on java desktop app

try {
file.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

PrintStream output = null;
try {
output = new PrintStream(new FileOutputStream(file));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

output.print(true); // <----- NULL POINTER EXCEPTION THIS LINE
output.print((int) 123);
output.print((float) 123.456);

output.printf(Locale.UK, "Text + data: %1$", 123);

output.close();

}
}
<小时/>

来自 list xml 文件的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

编辑:我刚刚找到了一些附加信息,所以我不害怕使用 getExternalStorageDirectory() 因为如果我是正确的。所有 Android 设备上都有一些外部存储目录,即使没有使用 SD 卡,例如我发现的另一个问题,

"Android will always report one mounted hardware memory (if any available) as External Storage.

That memory can be:

fitted inside the device by manufacturer (internal memory)
can be an sd card (external memory)

来自这个问题:

Device claims external storage, yet I have no SD card

最佳答案

这是从外部存储获取文件的方式:

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), filename);

注意:

may be if your device is rooted. mnt could work. I have no idea. but, it is a wrong approach.

关于java - 简单的写入文件代码可以在java中运行,但不能在android设备上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com