zoukankan      html  css  js  c++  java
  • IO流的学习以及统计次数最多的单词

     处理数据类型:字节流(InputStream  OutputStream)和字节流(Reader  Writer)

      数据流向不同:输入流和输出流(FileInputStream   FileOutputStream)

         输入流:

    1. InputStream 是所有的输入字节流的父类,它是一个抽象类。
    2. ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。
    3. ObjectInputStream 和所有FilterInputStream 的子类都是装饰流(装饰器模式的主角)。

         输出流:    

    1. OutputStream 是所有的输出字节流的父类,它是一个抽象类。
    2. ByteArrayOutputStream、FileOutputStream 是两种基本的介质流,它们分别向Byte 数组、和本地文件中写入数据。
    3. ObjectOutputStream 和所有FilterOutputStream 的子类都是装饰流

    文件输入简单案例以及异常处理:

    package reserve;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    
    
    import org.junit.Test;
    
    public class Main{
        public static void main(String[] args) {
            
        }
        @Test
        public void test() {
            FileInputStream input=null;
            try {
                input=new FileInputStream("Test/wenjian");
                int a=-1;
                while(true)
                {
                     a=input.read();
                    if(a==-1)
                        break;
                    System.out.print((char)a);
                }
                System.out.println((char)a);
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            finally {
                if(input!=null)
                    try {
                        input.close();//流的关闭是释放资源的操作
                    } catch (IOException e) {
                        // TODO 自动生成的 catch 块
                        e.printStackTrace();
                    }
            }
        }
        
    }

    测试截图:

    package  money;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    
    import org.junit.Test;
    public class Money{
        public static void main(String[] args) {
            
        }
        @Test
        public void fileout() throws IOException {
            FileOutputStream file=null;
            try {
                file=new FileOutputStream("Test/money");
                file.write('a');

                  String string="中国你好,世界你好!";
                  file.write(string.getBytes());

            } catch (FileNotFoundException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }finally {
                try {
                    if(file!=null)
                      file.close();
                } catch (IOException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
            }
            
        }
    }

    当没有当前需要输出的文件时,系统会在你写的当前路径下创建新的文件,刷新即可看到自动创建的那个文件。

     输出文件中前N个最常出现的英文单词,并将结果输入到文本文件中:

    package hu;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
     
    public final class Hu {
        private Hu(){}
        public static int countStringInFile(String filename , String word){
            int counter = 0;
            try{
                FileReader fr = new FileReader(filename);
                    BufferedReader br = new BufferedReader(fr);
                    String line = null;
                    while((line = br.readLine()) != null){
                        int index = -1;
                        while(line.length() >= word.length() && (index = line.indexOf(word)) >= 0){
                            counter++;
                            line = line.substring(index + word.length());
                        }
                    }
            }catch(IOException e){
                e.printStackTrace();
            }
            return counter;
        }
        public static int countString2(String filename , String word){
        int counter = 0;
        try{
            FileReader fr = new FileReader(filename);
            BufferedReader br = new BufferedReader(fr);
            String line = null;
            int l = word.length();
            while((line = br.readLine()) != null){
                for(int i = 0 ; i <= line.length() - l; i++){
                    if(line.substring(i, i + l).equals(word)){
                        counter++;
                    }
                }
            }
        }catch(IOException e){
            e.printStackTrace();
        }
        return counter;
       }
        
        public static void main(String[] args) {
            String filename = "F:\\wenjian";
            String word = "zhuo";
            System.out.println(Hu.countStringInFile(filename, word));
        }
    }
  • 相关阅读:
    【STL】各容器成员对比表
    windows笔记页文件支持的内存映射文件
    windows笔记【内核对象线程同步】线程同步对象速查表
    windows笔记虚拟内存
    windows笔记使用内存映射文件在进程之间共享数据
    svn个人服务端
    解决安装Visual Studio .NET 2003 时FrontPage 2000 WEB 扩展客户端 安装失败
    vc6.0转vs2008连接错误
    Sublime Text插件推荐
    末日了,说出你的梦想、愿望还有遗憾吧。
  • 原文地址:https://www.cnblogs.com/hhjing/p/11599887.html
Copyright © 2011-2022 走看看