zoukankan      html  css  js  c++  java
  • 1,随机生成一个500m的txt,填充内容为小写的26个字母。生成后,查找abc字符,打印出其数量和位置(越快越好)

    package com.baoge.test;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.Date;
    import java.util.Random;
    
    public class Test1  {
        
        public static void main(String[] args) throws IOException {
            File file = new File("D://test.txt");
            writeFile(file);
            readFile(file);
        }
        
        public static void writeFile(File file) throws IOException{
            
            //1m=1024kb , 1kb = 1024byte,gbk编码中一个英文字符占一个字节。
            int fileSize = 500*1024*1024;
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
            Random random = new Random();
            System.out.println("start time="+new Date());
            int i = 0;
            while( i < fileSize ){
                int num = random.nextInt(26);//生成随机数,大于等于0,小于26
                char c = (char) (num+97);//a:97,b:98.....,z:122
                bw.write(""+c);
                i ++;
            }
            bw.flush();
            bw.close();
            System.out.println("end time="+new Date());
        }
        
        public static void readFile(File file) throws IOException {
            
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    
            int index = 0;
            int count = 0;
            
            char[] chars = new char[3];
            
            while(br.read(chars, 0, 3)>-1){
                String str = new String(chars);
                
                if(str.equals("abc")){
                    count ++;
                    System.out.println("数量:"+count+"---位置:"+index);
                }
                index += 3;
            }
            
            br.close();
        }
    }
  • 相关阅读:
    如何处理请求返回的二进制数据流转化成xlsx文件?
    iview 表单验证不通过问题?
    如何发布一个npm包?
    async 与 await
    数据库事务的四个基本特征以及事务的隔离级别
    遍历Map的四种方式
    HashMap详解
    HashMap和Hashtable的区别
    java中的堆、栈和常量池简介
    Spring IOC(转载)
  • 原文地址:https://www.cnblogs.com/zhangxuesong/p/5855716.html
Copyright © 2011-2022 走看看