java怎么实现读取一个文件,拿到二进制流

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么实现读取一个文件,拿到二进制流相关的知识,希望对你有一定的参考价值。

Java读取二进制文件,以字节为单位进行读取,还可读取图片、音乐文件、视频文件等,
在Java中,提供了四种类来对文件进行操作,分别是InputStream OutputStream Reader Writer ,前两种是对字节流的操作,后两种则是对字符流的操作。
示例代码如下:
public static void readFileByBytes(String fileName)
File file = new File(fileName);
InputStream in = null;
try
System.out.println("一次读一个");
// 一次读一个字节
in = new FileInputStream(file);
int tempbyte;
while ((tempbyte = in.read()) != -1)
System.out.write(tempbyte);

in.close();
catch (IOException e)
e.printStackTrace();
return;
参考技术A InputStream 就是读取二进制文件的, 任何文件都可以用这个流来读, 也叫字节输入流 参考技术B FileInputStream fis=new FileInputStream("文件路径");

我现在拿到一个二进制文件流的音频文件,通过js怎么把这个音频文件直接播放出去

需要效果的和<img>标签一样直接能显示二进制流文件图片一样,通过js把这个二进制文件流放到某个标签中,这个音频文件就可以播放!

----------------------1、转换音频流--------------------------

loadAudioInfo=(audioId)=>

        let _this = this

        const url = api.getAudioPath(audioId)

        const request = new window.XMLHttpRequest()

        request.open('GET', url, true)

        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        request.setRequestHeader("APPID", "huizhan");

        request.setRequestHeader("X-Account-Info", JSON.stringify( userId: Application.userInfo.userId ));

        request.responseType = 'arraybuffer'

        request.onreadystatechange = function (res) 

            if (request.readyState == 4 && request.status == 200) 

                _this.setState(

                    conferenceAudioWav: 'data:audio/wav;base64,' + Buffer.from(request.response).toString('base64'),

                )

            

        

        request.onerror = (err) => 

        

        request.send();

    

-----------------------------2、正常使用audio标签 src赋值------------------------------

参考技术A //<audio>标签;

var file;
var audioDom=document.getElementById("yourAudioId");
audioDom.pause();
audioDom.src=window.URL.createObjectURL(file);
audioDom.play();

参考技术B 使用audio 标签 就可以了本回答被提问者采纳

以上是关于java怎么实现读取一个文件,拿到二进制流的主要内容,如果未能解决你的问题,请参考以下文章

java怎么数据库中的二进制转换成图片类型

java怎么用IO流把一个文件(SQLite数据库文件)复制到另一个位置

js 怎么实现image的二进制流

jsp将图片等文件上传到服务器根目录下,读取二进制流存入mysql?怎么样实现?

java 以二进制流的方式读取mysql 中的blob文件,并写入本地文件夹下

java IO 学习