如果有个图象文件是带路径的,为什么不用以下这个方法呢?
String fileName="d:\mypicture\1.jpg";
Image img=Toolkit.getDefaultToolkit().getImage(fileName);
这时获取的就是这个图象文件了!
要获取声音文件那简单,请看以下代码:
String fileName="abc.au";
try
{
URL u=new URL("file","localhost",filename);
        AudioClip clip=Applet.newAudioClip(u);
        clip.play();
}
catch(MalformedURLException e)
{
}
在创建URL实例的时候,这个方法要抛出MalformedURLException的异常,所以你要捕获这个异常。还有这个声音文件的格式必须是au的,这是Sun公司UNIX系统中的声音文件格式,我目前只知道在Java中可以播放这个格式的声音文件。要获取其他格式的声音文件,还请有那位知道的奉献出来哈!

解决方案 »

  1.   


    我试过了,好像
    fileName="d:\mypicture\1.jpg";这样写是不行的错误提示:
    illegal escape character
    im1=Toolkit.getDefaultToolkit().getImage("d:\j4.jpg");
      

  2.   

    不行的。applet小程序出于安全性考虑是不让读取本地文件的。
    出错信息如下:java.security.AccessControlException: access denied (java.io.FilePermission d:\4
    .jpg read)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:270)
            at java.security.AccessController.checkPermission(AccessController.java:
    401)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
            at java.lang.SecurityManager.checkRead(SecurityManager.java:887)
            at sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:408)
            at sun.awt.SunToolkit.getImage(SunToolkit.java:422)
            at p150.init(p150.java:15)
            at sun.applet.AppletPanel.run(AppletPanel.java:341)
            at java.lang.Thread.run(Thread.java:536)
      

  3.   

    to ervinlj(阳光男孩) 
    java还支持播放wav,SND声音格式。
      

  4.   

    是不是applet 程序就是不能读取本地绝对路径的文件呢?
    除了采取顶楼的变通方法,还有吗?
      

  5.   

    to fxniao:
    你原来是要在applet程序中读取图象文件和声音文件啊!我记得在JDK中有个工具好象叫policyTool,其中可以作一下设置,使得applet程序可以读写本地的文件。但具体怎样设置我已经有点忘记了!希望知道的朋友能出来解释一下!
    Java是还支持播放wav和SND文件的吗?这SND是什么文件呢?你知道在Java中是如何实现播放这些声音文件的吗?写一段代码出来好让大家研究一下吗?
      

  6.   

    to ervinlj(阳光男孩) 有时,我们需要在程序中释放声音,我可以在import java.applet.*包的支持下,让Java程序能够播放WAV、AU和SND格式的声音文件。  1.装载声音文件  与引用图像文件一样,我们也要将声音文件装载进来,才能够供Java程序使用。同样的,我们还是使用URL来定位一个声音文件。  在Java语言中装载声音文件,是使用getAudioClip方法,其语法格式是:
    public AudioClip getAudioClip(String url)
    public AudioClip getAudioClip(String url,String name)   同样的,我们可以调用getCodeBase()方法来获取当前目录的URL,这样就可以很方便地调用当前目录下的声音文件。例如:
    AudioClip clip1=getAudioClip(getCodeBase(),”carbrake.wav)   注:carbreak.wav是office97中带的,你可以在c:windowsmediaoffice97目录中找到,在此假设已拷贝到了c:javastudy目录中。  这样,我们就获得了一个AudioClip(声音片段)clip1,这个声音片段中存放的就是声音文件carbreak.wav。  2.操作声音片段  使用声音比使用图像要简单得多,我们现在就可以直接对一个AudioClip(声音片段)进行操作了,不再需要转换(图像就得从Image转成ImageIcon)。  1) 播放声音片段:  声音片段名.play()  一句话,就是直接调用声音片段对象的play()方法就可以将其播放出来。  2) 停止播放:  声音片段名.stop()  很简单吧,play就是播放,stop就是停止,好象在用放音机一样。  3) 循环播放:  声音片段名.loop()  有时,我们可能会需要一直播放一段声音,在Java语言中提供了一个很简单的方法来实现,那就是声音片段的loop方法。  实例说明  首先将c:windowsmediaoffice97carbrake.wav拷贝到c:javastudy目录下,然后输入以下源程序。  源程序:useAudio.java
    import javax.swing.*;
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    public class useAudio extends JApplet
    {
    AudioClip carbrake;
    public void init()
    {
    JPanel panel1=(JPanel)getContentPane();
    panel1.setLayout(new GridLayout(3,1));
    carbrake=getAudioClip(getCodeBase(),"carbrake.wav");
    JButton buttonPlay=new JButton("Play");
    JButton buttonStop=new JButton("Stop");
    JButton buttonLoop=new JButton("Loop");
    panel1.add(buttonPlay);
    panel1.add(buttonStop);
    panel1.add(buttonLoop);
    buttonPlay.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent evt)
    {
    carbrake.stop();
    carbrake.play();
    }
    });
    buttonStop.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent evt)
    {
    carbrake.stop();
    }
    });
    buttonLoop.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent evt)
    {
    carbrake.stop();
    carbrake.loop();
    }
    });
    }

    你可以到http://www.linuxaid.com.cn/articles/4/3/432546442.shtml去看看。
      

  7.   

    to fxniao:
    Ok,感谢,大家共同学习,共同提高哈!
    不过这个SND格式的文件到底是什么文件你知道吗?
      

  8.   


    to ervinlj(阳光男孩) 不客气.Apple公司的音频格式,扩展名为SND或MAC 。我试过了java好像可以播放au,wav格式.可以但snd却是不行。不知道为什么。
      

  9.   

    那么那位高人知道如何播放SND文件的吗?贡献一点代码让大家共同学习呀!