在写鸿蒙项目视频播放器项目时下载网络文件到本地时一直报需要写入的文件只读错误?
这是一个视频播放器的简易项目,在播放视频前先将网络上的视频下载到本地然后播放,但是在下载时出现无法写入的问题。代码如下:
@Override public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
downloadFile("https://media.w3.org/2010/05/sintel/trailer.mp4", "D:\\devecoStudio\\devecostudioProject\\testPlayer\\entry\\src\\main\\resources\\base\\media\\video.mp4");
播放视频代码省略。。。
}
public static void downloadFile(String httpUrl, String saveFile) {
URL url = null;
int byteRead;
File file = new File(saveFile);
try {
url = new URL(httpUrl);
} catch (MalformedURLException e) {
LogUtil.error("tnt", "URL错误!!!");
}
//2.获取链接
// URLConnection conn = null;
try {
conn = url.openConnection();
//3.输入流
Thread a = new Thread(new Runnable() {
@Override
public void run() {
try {
in = conn.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
}
});
a.start();
try {
a.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
//3.写入文件
FileOutputStream fs = null;
// file.canRead();
// file.canWrite();
fs = new FileOutputStream(saveFile); 一直报只读异常,前面修改文件只读也不行。
if (!file.exists()) {
file.createNewFile();
}
byte[] buffer = new byte[1024];
LogUtil.error("tnt", "in.read(buffer):"+in.read(buffer));
while ((byteRead = in.read(buffer)) != -1) {
fs.write(buffer, 0, byteRead);
}
in.close();
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
看到的结果应该是config.json读写权限问题,楼主解决了吗?