Java中的字符输入输出流练习

package charreadandwrite;

import java.io.*;

//从磁盘上读取一个文本文件(如某个java源代码),分别统计出文件中英文字母、空格、数字字符的个数。(注意文本文件中的数字指的是数字字符!!!)
public class CharDataRWTest {
    public static void main(String args[]) throws IOException {
        // 测试字符输入流Reader的read方法
        FileInputStream rea = new FileInputStream("test.txt");
        // public InputStreamReader(InputStream in)
        Reader reader = new InputStreamReader(rea);

        char[] cbuf = new char[1024];
        int readChar,numNum=0,numSpace=0,numWord=0;

        while ((readChar = rea.read()) != -1) {
          char c = (char) readChar;
          if((c>='a'&&c<='z')||(c>='A')&&(c<='Z')) numWord++;
          if(c>='0'&&c<'9') numNum++;
          if(c == ' ') numSpace++;
          System.out.println("该字符是:"+c);
        }
        System.out.println("最后的统计结果是:英文字母有"+numWord+"个;空格有"+numSpace+"个;数字字符有"+numNum+"个");

        //关闭流并释放资源
        reader.close();
    }


}
package charreadandwrite;

import java.io.*;

//在一个磁盘的文件里保存26个英文小写字母(乱序),将他们读入内存中,进行排序,把排好顺序的数再重新追加写到磁盘的该文件中。
//因为要多次读写,用缓冲流
//排序用一个int表做映射,写的时候再将int转为char
public class CharRWTest02 {
    public static void main(String args[]) throws IOException {
        Reader re= new BufferedReader(new InputStreamReader(
                new FileInputStream("test.txt")));
        char [] buf = new char[1024];
        int len;
        len=re.read(buf);//一次读入全部的数据
        int [] map = new int[30];
        for(int i=0;i<len;i++){
            System.out.print(((int)(buf[i]-'a'))+" ");
            map[(int)(buf[i]-'a')]++;
        }
System.out.println();
        Writer wr = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream("test.txt",true)));
        wr.write("\r\n");
        for(int i=0;i<30;i++){
            if(map[i]>0){
                while(map[i]>0){
                    map[i]--;
                    System.out.print((char)(i+'a')+" ");
                    wr.write((char)(i+'a'));
                }
            }
        }
        re.close();
        wr.close();

    }
}

猜你喜欢

转载自www.cnblogs.com/debug-the-heart/p/13205850.html