首页 > 其他分享 >Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream

Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream

时间:2023-03-17 19:02:31浏览次数:56  
标签:java tempMp3 createTempFile FileOutputStream io import FileInputStream


场景

在接收到音频文件的字节数组之后,需要将其临时存储在手机的某个路径下并将其转换为

FileOutpurStream和FileInputStream提供给MediaPlayer进行播放。

如果指定音频文件的存储路径时就会设计到权限问题、路径问题的设置等。

可以将其存储在临时文件目录下,只供临时播放用,不进行永久存储。

注:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

代码如下

try {
byte[] mp3SoundByteArray = Base64.decode(content, Base64.DEFAULT);// 将字符串转换为byte数组
// create temp file that will hold byte array
File tempMp3 = File.createTempFile("badao", ".mp3");
tempMp3.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tempMp3);
fos.write(mp3SoundByteArray);
fos.close();

// Tried reusing instance of media player
// but that resulted in system crashes...
MediaPlayer mediaPlayer = new MediaPlayer();

// Tried passing path directly, but kept getting
// "Prepare failed.: status=0x1"
// so using file descriptor instead
FileInputStream fis = new FileInputStream(tempMp3);
mediaPlayer.setDataSource(fis.getFD());

mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException ex) {
String s = ex.toString();
ex.printStackTrace();
}

其中相关引入

import android.media.MediaPlayer;
import android.os.Environment;
import android.util.Base64;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

可以看到调用File.createTempFile将其转换为临时文件后

 

Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream_Android

然后将其转换为FileOutputStream后

 

Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream_android_02

然后将其转换为FileInputStream后

 

Android中怎样使用createTempFile实现将字节数据创建到临时文件并转换成FileOutputStream和FileInputStream_android_03

标签:java,tempMp3,createTempFile,FileOutputStream,io,import,FileInputStream
From: https://blog.51cto.com/BADAOLIUMANGQZ/6127849

相关文章

  • Java FileOutputStream IO 拒绝访问
    很无聊的bug,也是对IO使用不熟悉导致本意是将文件写入这个目录下FileOutputStreamfos=newFileOutputStream("D:/test");然后报拒绝访问的错误,应该这么写FileOut......
  • 字节输入流_FileInputStream
    publicstaticvoidmain(String[]args){//字节流的读操作FileInputStreamf=null;try{//注意:读取数据的时候,如果文件......
  • sonar代码扫描bug:Use try-with-resources or close this "FileInputStream" in a "fi
      下面代码/***读取文件到byte数组**@paramtradeFile*@return*/publicstaticbyte[]file2byte(FiletradeFile){try{FileInputSt......
  • FileInputStream中的读入方式
    1、fileInputStream.read(bytes)bytes为字节数组变量;该函数表示一次性读取bytes数组大小的字节该函数的返回值有两种:一种是-1,表示文件已读完;另一种是读入的字节......
  • 字节流的基本流:FileInputStream
    FileInputStream的基本用法字节输出流的循环读取文件的拷贝文件拷贝的弊端和改进方案FileInputStream的基本用法packagecom;importjava.io.*;public......
  • 字节输出流的基本流:FileOutputStream
    写入和读出的正确辨识为什么不能用来写入中文FileOutStream写数据的3种方式解决续写和换行问题我们的File类只能操作文件本身,而对于文件中的数据而无法操作,我们的IO......
  • 00022.09 用字节流读写文件:FileInputStream和FileOutputStream
    用文件字节流读写文件目录文章目录​​用文件字节流读写文件目录​​​​前言​​​​一、InputStream​​​​二、使用字节流,来读取纯文本文件步骤​​​​三、复制任意......
  • Java FileInputStream/FileOutputStream的应用 文件读取和写入//京鸿通信科技//www.ky
    这是一对继承于InputStream和OutputStream的类,用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);本地文件读写编程的基本过程为:① 生......
  • FileInputStream和FileOutputStream
    FileInputstream字节输入流用于文件内容的读取操作.创建FileInputstream对象用于读取文件内容,使用后需要进行关闭操作常用方法:read();//每次仅读取一个字节,返回......
  • FileInputStream
    FileInputsteam通过文件路径指向文件,在程序中为程序的载体第一种单纯read方法返回assicma值,所以转换成char可以直接输出  第二种括号括号里加数组的,是将数据读取暂......