import java.io.*;
public class TryReadFile
{
public static void main(String args[])
{
byte[] info=new byte[8]; 
String dirName="d:/test";
String fileName="test.txt";
try
{
File dirObject=new File(dirName);//创建目录对象
File fileObject=new File(dirObject,fileName);//创建文件对象
FileInputStream inputFile=new FileInputStream(fileObject);//创建输入流对象
inputFile.read(info);//将test文件中的内容读到数组中去
inputFile.close(); //关闭文件
}
catch(FileNotFoundException e)
{
System.out.println("FileNotFoundException"+e+" occured.");
}
catch(IOException e)
{
System.out.println("IOException"+e+" occured.");
}
for(int i=0;i<info.length;i++)
System.out.print((char)info[i]+"   ");
System.out.println();
//怎么在这里对字母的出现频率进行统计???}其中test.txt中的的字母(假设)是 a,c,d,a,b,c,b,d

解决方案 »

  1.   

    int[] count = new int[26];for(int i=0;i<info.length;i++)
      ++count[(int)info[i]-(int)'a'];
      

  2.   

    int[] count = new int[26];for(int i=0;i<info.length;i++)
      ++count[(int)info[i]-(int)'a'];  ???能不能解释下,你这里好象是统计字母的出现频率,但是输出不好写,难道要我从a字母到z字母写出它们所有的出现次数
      

  3.   

    其中test.txt中的的字母(假设)是 a,c,d,a,b,c,b,e要求输出(按字母顺序输出)
    a:2
    b:2
    c:2
    d:1
    e:1
    那输出就不好写了吧
      

  4.   

    import java.io.*;
    public class TryReadFile
    {
    public static void main(String args[])
    {
    byte[] info=new byte[8]; 
    String dirName="d:/test";
    String fileName="test";
    try
    {
    File dirObject=new File(dirName);//创建目录对象
    File fileObject=new File(dirObject,fileName);//创建文件对象
    FileInputStream inputFile=new FileInputStream(fileObject);//创建输入流对象
    inputFile.read(info);//将test文件中的内容读到数组中去
    inputFile.close(); //关闭文件
    }
    catch(FileNotFoundException e)
    {
    System.out.println("FileNotFoundException"+e+" occured.");
    }
    catch(IOException e)
    {
    System.out.println("IOException"+e+" occured.");
    }
    for(int i=0;i<info.length;i++)
    System.out.print((char)info[i]+"   ");
    System.out.println(); int[] count = new int[26];
    int[] n=new int[26];
    for(int i=0;i<info.length;i++)
      ++count[(int)info[i]-(int)'a'];
        for(int i=0;i<26;i++)
        {
       n[i]=i;
       System.out.println("字母"+(char)(n[i]+97)+"出现的个数: "+count[i]);
    }
    }
    }只能处理全部是小写字母的情况,如果有大写字母或其它符号在内,有该怎么处理呢?
    望指教