2012-05-21 292 views
1

我已经编写了一个读取文件内容的程序。阅读文件内容

import java.io.*; 

public class FileLineReader { 
    public static void main(String args[]) { 
    try { 
     FileReader reader = 
      new FileReader("C:\\Users\\sriram\\Documents\\Java Programs\\" + 
         args[0]); 
     BufferedReader buffer = new BufferedReader(reader); 
     String fileContent; 
     while ((fileContent = buffer.readLine()) != null) { 
     System.out.println(fileContent); 
     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
    } 
} 

所以基本上它从一个特定的文件夹中读取内容。如果我输入为FileLineReader.class这是Java程序的.class文件,程序将输出字节码,但会给我一声嘟嘟声。对于所有其他文件,它会正确输出。

有谁能告诉我为什么?

+4

1)请为代码块使用一致的逻辑缩进。 2)不要忽略异常输出。将catch(Exception e){}'改为catch(Exception e){e.printStackTrace(); } @ –

+1

@AndrewThompson TIFIFY。 :-) –

+1

@AdamLiss现在你可以修复'忽略输出'..&擦我的下巴? ;) –

回答

4

FileLineReader.class很可能是一个二进制(编译后的Java)文件,它恰好包含一个值为7的字节,该值是该响铃字符的ASCII码。显示ASCII 7时,许多终端会发出蜂鸣声。

+0

你怎么知道这么多人?真棒回复:)。 – sriram

+2

@sriram回到黑暗时代,当我们通过烛光写代码并且没有SoundBlasters时,计算机的扬声器就是我们在有趣的事情发生时提醒我们的所有事情。 –

+0

在Mac环境中运行此程序。没有听到任何声音。我的环境。 Java™HotSpot™64位服务器虚拟机(内部版本20.6-b01-415)> Java版本“1.6.0_31”Java™SE运行时环境(内部版本 > 1.6.0_31-b04-415-11M3635) > ,混合模式)和Mac OS Lion 10.7.4 –

-2

如果您正在读取二进制文件,它们可以包含一系列代表随机声音的字节。当您将这样的序列发送到标准输出时,操作系统将播放声音。

+1

不是你的倒立选民,但这是不正确的。查看Adam的其他答案。 –