我是一个刚来的学生!有些问题,不知能在这得到帮助否?Calendar calender==Calendar.getInstance();
while(true){System.out.println("时间hehe:"+calendar.get(Calendar.YEAR)+" "+calendar.get(Calendar.MONTH)+" "+calendar.get(Calendar.DAY_OF_MONTH)+" "+calendar.get(Calendar.HOUR_OF_DAY)+" "+calendar.get(Calendar.MINUTE)+" "+calendar.get(Calendar.SECOND));
}
为什么一直结果是输出相同的时间日期?而不随系统不断改变,该怎么变啊?
还有个问题就是在java中怎么播放一个本地.wav音频文件?哪个类和什么方法!

解决方案 »

  1.   

    while (true) {
    calender = Calendar.getInstance();
    System.out.println("时间hehe:" + calender.get(Calendar.YEAR) + "   "
    + calender.get(Calendar.MONTH) + "   "
    + calender.get(Calendar.DAY_OF_MONTH) + "   "
    + calender.get(Calendar.HOUR_OF_DAY) + "   "
    + calender.get(Calendar.MINUTE) + "   "
    + calender.get(Calendar.SECOND));
    }
    将Calendar.getInstance();放到循环里面不就好了吗?
      

  2.   

    播放wav
    import java.io.ByteArrayInputStream;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.SourceDataLine;
    import javax.sound.sampled.UnsupportedAudioFileException;public class Test { private AudioFormat format; private byte[] samples; public static void main(String args[]) throws Exception {
    Test sound = new Test("chimes.wav");
    InputStream stream = new ByteArrayInputStream(sound.getSamples());
    // play the sound
    sound.play(stream);
    // exit
    System.exit(0);
    } public Test(String filename) {
    try {
    // open the audio input stream
    AudioInputStream stream = AudioSystem.getAudioInputStream(new File(
    filename));
    format = stream.getFormat();
    // get the audio samples
    samples = getSamples(stream);
    }
    catch (UnsupportedAudioFileException ex) {
    ex.printStackTrace();
    }
    catch (IOException ex) {
    ex.printStackTrace();
    }
    } public byte[] getSamples() {
    return samples;
    } private byte[] getSamples(AudioInputStream audioStream) {
    // get the number of bytes to read
    int length = (int) (audioStream.getFrameLength() * format
    .getFrameSize()); // read the entire stream
    byte[] samples = new byte[length];
    DataInputStream is = new DataInputStream(audioStream);
    try {
    is.readFully(samples);
    }
    catch (IOException ex) {
    ex.printStackTrace();
    } // return the samples
    return samples;
    } public void play(InputStream source) { // use a short, 100ms (1/10th sec) buffer for real-time
    // change to the sound stream
    int bufferSize = format.getFrameSize()
    * Math.round(format.getSampleRate() / 10);
    byte[] buffer = new byte[bufferSize]; // create a line to play to
    SourceDataLine line;
    try {
    DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
    line = (SourceDataLine) AudioSystem.getLine(info);
    line.open(format, bufferSize);
    }
    catch (LineUnavailableException ex) {
    ex.printStackTrace();
    return;
    } // start the line
    line.start(); // copy data to the line
    try {
    int numBytesRead = 0;
    while (numBytesRead != -1) {
    numBytesRead = source.read(buffer, 0, buffer.length);
    if (numBytesRead != -1) {
    line.write(buffer, 0, numBytesRead);
    }
    }
    }
    catch (IOException ex) {
    ex.printStackTrace();
    } // wait until all data is played, then close the line
    line.drain();
    line.close(); }}
      

  3.   

    在循环之前calender已经被赋值,循环中没有重新赋值
      

  4.   

    看中了2楼的播放wav,标记下,^_^