zoukankan      html  css  js  c++  java
  • 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("
    ");
            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();
    
        }
    }
  • 相关阅读:
    冗余换性能从Backbone的triggerEvents说开了去
    Sublime Text3 中安装 Emmet
    windows下安装dig
    掺合模式(Mixin)
    Backbone.sync将模型同步到服务器
    Sublime text jQuery插件
    快捷键汇集
    动态创建script在IE中缓存js文件时导致编码不正确bug
    Firefox中使用location.hash会自动decodeURI Bug
    Backbone事件模块
  • 原文地址:https://www.cnblogs.com/debug-the-heart/p/13205850.html
Copyright © 2011-2022 走看看