我想從USB讀取一個Mp3文件並將數據寫入不同的緩衝區。請幫助我,如果有任何好的方法來做到這一點。如何在Java中將一個Mp3文件寫入多個字節數組?
我可以將整個數據讀入一個字節數組。但是我想做一些事情,比如將第一個8字節寫入第一個字節數組,然後將第8個字節寫入第二個字節數組,等等直到數據結束。請儘可能提供示例代碼。正如我可以很快掌握,如果我在我面前有任何例子。
下面是我的代碼,我必須讀取數據。
public class ReadFileInByteArrayWithFileInputStream {
static byte[] buffer1 ;
@SuppressWarnings("null")
public static void main() {
File file = new File("/mnt/media/wayfaring_stranger.mp3");
FileInputStream fin = null;
FileOutputStream fout=null;
try
{
// create FileInputStream object
fin = new FileInputStream(file);
byte fileContent[] = new byte[(int) file.length()];
// Reads up to certain bytes of data from this input stream into an
// array of bytes.
fin.read(fileContent);
// create string from byte array
String s = new String(fileContent);
System.out.println("File content: " + s);
buffer1 = new byte[8];
}
catch (FileNotFoundException e)
{
System.out.println("File not found" + e);
}
catch (IOException ioe) {
System.out.println("Exception while reading file " + ioe);
}
finally {
// close the streams using close method
try
{
if (fin != null) {
fin.close();
}
}
catch (IOException ioe)
{
System.out.println("Error while closing stream: " + ioe);
}
}
}
}
僅供參考,Stackoverflow不是代碼存儲庫,因此您不能要求代碼/示例。 –
file.length()返回抽象路徑的長度。不要使用它 – Keerthivasan
你的代碼被打亂開始,因爲你沒有使用'fin.read(buffer)'(它可能沒有讀取所有數據)的返回值,然後你將這個任意二進制數據轉換爲字符串,當它不是文本*時。噢,'file.length()'部分也是如此... –