【新人求助】自学JAVA遇到文件数据流问题,求教

问题描述

小弟自学JAVA不久,现在看书上一关于读取MP3文件ID3数据的程序,我每次执行都提示Error—java.io.FileNotFoundException:11(系统找不到指定的文件。)求解啊!!原文代码如下:importjava.io.*;publicclassID3Reader{publicstaticvoidmain(String[]arguments){try{Filesong=newFile(arguments[0]);FileInputStreamfile=newFileInputStream(song);intsize=(int)song.length();file.skip(size-128);byte[]last128=newbyte[128];file.read(last128);Stringid3=newString(last128);Stringtag=id3.substring(0,3);if(tag.equals("TAG")){System.out.println("Title:"+id3.substring(3,32));System.out.println("Artist:"+id3.substring(33,62));System.out.println("Album:"+id3.substring(63,91));System.out.println("Year:"+id3.substring(93,97));}else{System.out.println(arguments[0]+"doesnotcontain"+"ID3info.");}file.close();}catch(Exceptione){System.out.println("Error—"+e.toString());}}}///////////////////////////////参数设置如图:

解决方案

解决方案二:
将arguments[0]文件放到项目的根目录下面,也就是跟src同级,就可以读到了
解决方案三:
先谢谢@magi1201回复,但我放src文件夹后还是提示找不到
解决方案四:
引用2楼leodefrank的回复:

先谢谢@magi1201回复,但我放src文件夹后还是提示找不到

项目根目录下面,跟src同级,不是src下面你的放到Java24目录下面
解决方案五:
你看看这个,方式和你的不同,封装了一下packagemp3;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.net.URL;importjava.util.HashMap;importjava.util.Map;importjavax.imageio.ImageIO;importnet.coobird.thumbnailator.Thumbnails;importorg.jaudiotagger.audio.exceptions.InvalidAudioFrameException;importorg.jaudiotagger.audio.exceptions.ReadOnlyFileException;importorg.jaudiotagger.audio.mp3.MP3AudioHeader;importorg.jaudiotagger.audio.mp3.MP3File;importorg.jaudiotagger.tag.TagException;importorg.jaudiotagger.tag.id3.AbstractID3v2Frame;importorg.jaudiotagger.tag.id3.framebody.FrameBodyAPIC;publicclassReadMp3Info{/****@parammp3Pathmp3文件地址*@paramsavePathMP3内嵌图片的存放地址*@return该MP3的文件信息length:mp3时长单位:秒;size:mp3文件大小单位:字节;singer:mp3演唱者;*author:作者album:专辑createTime:文件创建时间*@throwsInvalidAudioFrameException*@throwsReadOnlyFileException*@throwsTagException*@throwsIOException**/publicstaticMap<String,String>getMp3InfoMap(Stringmp3Path,StringsavePath)throwsIOException,TagException,ReadOnlyFileException,InvalidAudioFrameException{Map<String,String>mp3Map=newHashMap<String,String>();FilesourceFile=newFile(mp3Path);MP3Filefile=newMP3File(mp3Path);MP3AudioHeaderheader=file.getMP3AudioHeader();mp3Map.put("length",header.getTrackLengthAsString());mp3Map.put("size",String.valueOf(sourceFile.length()));MapframeMap=file.getID3v2Tag().frameMap;AbstractID3v2Framea3f_singer=(AbstractID3v2Frame)frameMap.get("TPE1");AbstractID3v2Framea3f_author=(AbstractID3v2Frame)frameMap.get("TALB");AbstractID3v2Framea3f_album=(AbstractID3v2Frame)frameMap.get("TIT2");AbstractID3v2Framea3f_time=(AbstractID3v2Frame)frameMap.get("TYER");mp3Map.put("singer",a3f_singer.getContent());mp3Map.put("author",a3f_author.getContent());mp3Map.put("album",a3f_album.getContent());mp3Map.put("createTime",a3f_time.getContent());AbstractID3v2Framea3f_pic=(AbstractID3v2Frame)frameMap.get("APIC");FrameBodyAPICfba=(FrameBodyAPIC)a3f_pic.getBody();byte[]imageData=fba.getImageData();FileOutputStreamfos=newFileOutputStream(savePath);fos.write(imageData);fos.close();returnmp3Map;}publicstaticvoidsaveMp3Pic(StringtmpPath,StringpicPath)throwsIOException,TagException,ReadOnlyFileException,InvalidAudioFrameException{System.out.println("开始存储图片...");MP3Filefile=newMP3File(tmpPath);MapframeMap=file.getID3v2Tag().frameMap;AbstractID3v2Framea3f_pic=(AbstractID3v2Frame)frameMap.get("APIC");FrameBodyAPICfba=(FrameBodyAPIC)a3f_pic.getBody();byte[]imageData=fba.getImageData();FileOutputStreamfos=newFileOutputStream(picPath);fos.write(imageData);fos.close();}publicstaticvoidmain(String[]args)throwsIOException,TagException,ReadOnlyFileException,InvalidAudioFrameException{getMp3InfoMap("E:/test/a.mp3","E:/test/wma.jpg");}}

使用了一个jarjaudiotagger-2.0.3.jar
解决方案六:
你把文件名【11Coda.mp3】文件名改一下【11Coda.mp3】去掉11之后的空格,arguements也是如此改试试看
解决方案七:
谢谢各位,结合magi1201和XUECHANG1解决了,我的问题是1.文件位置没有放对,2.文件名不能包含空格但是为什么不能包含空格呢,书中的MP3文件名也有空格呢...
解决方案八:
如果有空格的话,那arguments[0]就是11,java会把11coda.mp3拆开的,而不是11Coda.mp3,所以Error—java.io.FileNotFoundException:11
解决方案九:
有道理有道理
解决方案十:
Error—java.io.FileNotFoundException:11(系统找不到指定的文件。)求解啊!!就是说,找不到文件。Filesong=newFile(arguments[0]);看看你的这一句的参数。你先用system.out.prinlt(arguments[0]);打印一下看看你的文件路径和文件名是否正确!!

时间: 2024-08-21 17:40:22

【新人求助】自学JAVA遇到文件数据流问题,求教的相关文章

线程-新人求助关于java.lang.StackOverflowError的异常问题

问题描述 新人求助关于java.lang.StackOverflowError的异常问题 public class ProcessRow { Properties source= new Properties(); { try { FileInputStream fis = new FileInputStream(new File( inputPropertieName())); InputStreamReader isr = new InputStreamReader(fis, "UTF-8&

新人求助 关于JAVA的基础问题

问题描述 新人求助 关于JAVA的基础问题 刚开始学习JAVA 想请教一下这里面的!X表示的是什么?是X=false吗? 解决方案 这里的!x是判断的意思而if里的布尔值只有为true的时候才会执行其后面花括号里的程序.所以当x的布尔值为true时!x是false后面花括号里的代码是不会执行的.当x的布尔值为false时!x是true这时后面花括号里的代码才会执行的. 解决方案二: 是的,非操作,就是如果x的值为false,那么非就是true,就会进入条件分支了. 解决方案三: 如果x为fals

关于java问题-新人求助,,,毫无基础,自学JAVA

问题描述 新人求助,,,毫无基础,自学JAVA 请问这个代码应该怎么填...... 解决方案 首先说一下插入排序的思想:从第二个数开始,跟它前面的数值进行比较,直到找到比它小的数值然后插入到该数值的后面,同时把比该数值大的数值后移一位. 代码1: n[0]=n[i]; //用n[0]保存要插入的数值 代码2: j>0&&n[0]<n[j] 代码3: n[j+1]=n[j];//从原来的位置后移一位 代码4; n[j+1] 你试一下 应该可以运行 ,有问题了告诉我哈. 解决方案二

编程-[求助]使用java在指定的目录下实现文件的模糊搜索

问题描述 [求助]使用java在指定的目录下实现文件的模糊搜索 一.功能要求: 用户单击"选择地址"按钮,程序自动打开文件夹选择器(如图2),用户选定用户选择目标文件夹后,输入文件名(可包含"*"表示任意连续多个字符,"?"示任意一个字符),选择文件的扩展名.程序自动获取指定目录下满足条件的所有文件,并显示在窗体中(如图1).二.关键技术: 首先获取指定目录下的文件数组,再从该数组中查询满足条件的文件.三.实现的图形用户界面如下: 解决方案 已经

要求在这里-java分割字符串新人求助

问题描述 java分割字符串新人求助 解决方案 String a=""abcd.e.fg""; String[] ss = a.split(""[.]""); for(String i : ss) System.out.println(i); 解决方案二: String[] s=""ab.cd"".split(""\.|); for (String o : s) {

扩展名-java实现文件重命名求助

问题描述 java实现文件重命名求助 上传文件,如果文件存在则重命名文件,如x.txt存在则重命名为x(1).txt但是有些文件没有扩展名如 xx_x.10.12这个怎么重命名. 解决方案 要么自己判断有没有扩展名,要么不管有没有,都一样对待 解决方案二: 文件没有扩展名不影响判断文件存在 不存在吧.默认最后一个点之后的就是扩展名呗. 解决方案三: 一个个的判断吧..如果不是.txt或者.zip或者.jpg等等..要是限制了文件上传的类型就好点.最好是在上传的时候就做限制. 解决方案四: 如果在

java新人求助C:forEach和C;if

问题描述 java新人求助C:forEach和C;if function showJlInspectionLocalCheckPerson(){ var dotable2 = document.getElementById('tab11'); var nodes2 = dotable2.lastChild.getElementsByTagName("input"); for( i=0;i<nodes2.length;i++){ if(nodes2[i].name=="i

java 监听器- java新人求助,五子棋胜利判定无效。

问题描述 java新人求助,五子棋胜利判定无效. private MouseListener playChessHandler=new MouseAdapter(){ public void mousePressed(MouseEvent e){ int x=e.getX(); int y=e.getY(); //******放一颗棋子 if(canplay=true){ if(x<=grids*space&&x>=0&&y<=grids*space&am

数据库-求助:java web项目打包成安装文件,在桌面生成浏览器快捷方式,点击快捷方式访问网址。

问题描述 求助:java web项目打包成安装文件,在桌面生成浏览器快捷方式,点击快捷方式访问网址. 已做好一不联网的人员信息登记程序,不想发布到远程服务器上,想把程序打包成安装包 安装包内包含 数据库(mysql), web服务器(tomcat 6.0), jdk 1.6, 安装完成后自动发布到tomcat,服务设置成自动,每次开机启动服务. 卸载时数据库,tomcat jdk全部卸载,包括服务. 求指点如何做.先谢谢各位了. 注:不是异想天开,现在有一实例就是这样的,所以打算参照这个做一个.