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怎么用IO流把一个文件(SQLite数据库文件)复制到另一个位置
jsp将图片等文件上传到服务器根目录下,读取二进制流存入mysql?怎么样实现?