我正在从 .wav 文件中读取数据,然后将其转换为二进制格式。然后我编写这些二进制文件并创建一个新的 .wav 文件。我希望在获得 .wav 文件的二进制格式后,我应该对其 LSB 进行少量修改,然后从这些修改的位写入文件。
我应该如何实现这个?我没有任何办法。请帮助我,因为我想通过音频文件进行速记。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FiletoArrayofBytes
{
public static void main( String[] args )
{
FileInputStream fileInputStream=null;
FileOutputStream fop = null;
File file = new File("C:\\file.wav");
byte[] bFile = new byte[(int) file.length()];
try {
File fileo = new File("c:/newfile.wav");
fop = new FileOutputStream(fileo);
// if file doesnt exists, then create it
if (!fileo.exists()) {
fileo.createNewFile();
}
//convert file into array of bytes
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
for (int i = 0; i < bFile.length; i++) {
System.out.println(Integer.toBinaryString(0x100 + (bFile[i])).substring(1));
//String a =(Integer.toBinaryString(0x100 + (bFile[i])).substring(1));
int a=bFile[i];
fop.write(a);
System.out.println("\t i am a: " +a);
}
fop.flush();
fop.close();
System.out.println("Done");
}catch(Exception e){
e.printStackTrace();
}
}
}