「java的读取速度」读取速度和读写速度

博主:adminadmin 2022-12-09 14:00:09 75

本篇文章给大家谈谈java的读取速度,以及读取速度和读写速度对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java 关于文件读取速度问题,求助,谢谢啦

/**

 * ip条目实体类

 */

public class IpEntry {

    String country, province, city, region, local;

    long start = 0, end = 0;

    public String getCountry() {

        return country;

    }

    public String getProvince() {

        return province;

    }

    public String getCity() {

        return city;

    }

    public String getRegion() {

        return region;

    }

    public String getLocal() {

        return local;

    }

    

    /**

     * 接受字符串初始化属性

     * @param text

     */

    public IpEntry(String text) {

        String fields[] = text.split(",");

        

        start = Long.parseLong(fields[1]);

        end = Long.parseLong(fields[3]);

        

        country = fields[5];

        province = fields[6];

        city = fields[7];

        region = fields[8];

        local = fields[9];

    }

}

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

/**

 * ip地址表类

 */

public class IpTable {

    ListIpEntry table;

    

    //读取文件写入, 逐行构造IpEntry, 写入list

    public IpTable(String fileName) {

        BufferedReader rd = null; 

        String line;

        

        table = new LinkedListIpEntry();

        

        try {

            rd = new BufferedReader(new FileReader(fileName));

            

            while (true) {

                line = rd.readLine();

                if (null == line)

                    break;

                

                table.add(new IpEntry(line));

            }

            

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            try {

                //IO资源必须在finally中关闭

                rd.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

    

    //匹配第一条

    public IpEntry matchFirst(long ip) {

        for (IpEntry entry : table) {

            if (entry.start = ip  entry.end = ip)

                return entry;

        }

        return null;

    }

    

    //匹配所有

    public IpEntry[] matchAll(long ip) {

        ListIpEntry list = new ArrayListIpEntry();

        for (IpEntry entry : table) {

            if (entry.start = ip  entry.end = ip)

                list.add(entry);

        }

        

        return list.toArray(new IpEntry[list.size()]);

    }

    

    //静态方法

    static final String IP_TABLE_FILE_NAME = "E://12.txt";

    static IpTable instance = null;

    

    public static IpEntry match(long ip) {

        //仅在第一次调用时,初始化静态实例读取文件

        if (instance == null)

            instance = new IpTable(IP_TABLE_FILE_NAME);

        

        return instance.matchFirst(ip);

    }

    

    //你要的方法

    public static String getIpCountry(String ip) {

        return match(ipToLong(ip)).getCountry();    //你自己的ipToLong方法

    }

    

    //模拟测试

    public static void main(String[] args) {

        String ip[] = {

                "192.168.1.1",

                //...

                "220.10.10.135"

        };

        

        for (int i = 0; i  ip.length; i++) {

            System.out.println(IpTable.getIpCountry(ip[i]));

        }

    }

    

}

可能你一下转不过来,根据你代码里给的结构给你写了个完整的示例。

主要就是把文件内容读取后格式化放在内存对象中,让后只要在对象中查找匹配,就不用再去读取文件了。关于性能优化的话,因为每次都是顺序迭代查找,所以用了LinkedList,其他的话暂时也想不出什么可以优化的地方了

Java大神求助:关于读取文件速度的问题

设置简单一个缓存器!可以用StringBuffer这个类来实现。以后调用的时候直接调用这个StringBuffer里的数据就行!如果有多个包想相互之间调用就将这个StringBuffer和读写文件的函数都放在一个类中,把StringBuffer设成static的在用static初始化器直接执行读取文件,这样的话每次只需调用这个类的静态属性就行,这种设计模式是单例模式!

java的io流读取文件速度快还是jdbc读取数据库的速度快?

文件是直接读磁盘,速度和程序逻辑及磁盘速度有关。。。。

~

而jdbc是再封装、是通过网络的。速度依赖更多

~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

java文件读取速度

要实现这个功能的话,你可以写一个线程休眠的语句,就是让主线程暂停执行

Thread.sleep(2000);

这个语句表示休眠2秒

java集合内,存大概多少数据时,读取会变慢?

楼主 如果 说list的 并且用于分页的话,分页中的list 并不是 把所有的数据 都请求出来放在list里 去翻页,这样的话速度肯定会很慢,如果是分页的话 一般都是查询 区间的 例如 第2页 每页显示5个 那么我们只要查询6-10的记录的就行 不必查询出所有的数据,这样速度会快。并且如果list 存入大量数据不仅页面访问速度降低 而且安全性也值得考虑。

关于java的读取速度和读取速度和读写速度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-09,除非注明,否则均为首码项目网原创文章,转载请注明出处。