快速IO的方式|Java快读模板

处理IO的方式:

处理输入和输出的方式:

        C++:cin / cout

        Java:Scanner / System.out

但是这两种有超时的风险

那么C++处理方式:直接改为scanf / printf ,也就是C语言中的读写方式

        Java处理方式:准备一个快读模板

下面就来介绍一下Java中的快读模板:

1.Scanner与System.out为什么慢?

输入输出的信息放在一个文件里,Scanner每次调用next()都需要访问IO设备,而且每次调用都只会取出去一个数,所以这样的速度就非常的慢,System.out也是同理的

2. 介绍解释Java快读的模板

Java处理IO有两套标准:

(1)字节流

(2)字符流:eg:带Reader的就是

BufferedReader的逻辑:(为什么快读快?

它会先把放在文件中的数据全部放到内存缓冲区去,BufferedReader.next()的时候就直接到内存缓冲区拿数据

BufferedWriter也是一样的逻辑

模板代码: 

import java.io.*;
import java.util.*;

public class Main {
    //PrintWriter里面的方法和System.out的使用方法一样
    public static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    public static Read in = new Read();
    public static void main(String[] args) throws IOException{
        //写代码
        int n = in.nextInt();
        out.println(n);
        out.close();
    }

}

//快读模板
class  Read {//自定义快读读入
    //字符串裁剪
    StringTokenizer st = new StringTokenizer("");

    //1.字节流System.in->字符流InputStreamReader
    //2.带内存缓冲区的字符流BufferedReader
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));


    String next() throws IOException {
        //为什么要while循环,因为可能读取的数据不止一行,有多行就需要多次取
        while(!st.hasMoreTokens()) {
            st = new StringTokenizer(bf.readLine());//先拿一行的数据
        }
        return st.nextToken();//对这一行的数据进行裁剪,拿到第一个数据
    }

    String nextLine() throws IOException {
        return bf.readLine();
    }

    int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    long nextLong() throws IOException {
        return Long.parseLong(next());
    }

    double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/558134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

万物皆可计算|下一个风口:近内存计算-2

虽然PIM可以有缓解内存墙的问题,但是PIM设计面临着一系列技术和工程上的挑战,这些挑战直接影响着PIM技术的实用化和广泛应用: 地址翻译与操作映射: 在传统计算机体系结构中,地址空间由操作系统管理和调度,通…

万物皆可计算|下一个风口:近内存计算-1

传统的冯诺依曼架构虽然广泛应用于各类计算系统,但其分离的数据存储与处理单元导致了数据传输瓶颈,特别是在处理内存密集型任务时,CPU或GPU需要频繁地从内存中读取数据进行运算,然后再将结果写回内存,这一过程涉及大量…

Vue3:响应式数据的基本使用(ref、reactive)

一、前言 在Vue3中,如果数据不是响应式数据,当数据的值发生改变时,页面上的数据是不会发生改变的。因此本文主要介绍Vue3中响应式数据的使用,包括ref和reactive的基本使用。 二、ref 1、ref —— 创建基本类型的响应式数据 re…

电大搜题微信公众号:重庆开放大学学子的学习利器

在当今信息化时代,学习已经成为每个人不可或缺的一部分。然而,对于重庆开放大学的学子们来说,由于远程教育的特殊性,他们面临着更大的学习挑战。幸运的是,他们现在可以依靠一款强大的学习利器——电大搜题微信公众号&a…

软考中级网络工程师-2024上岸宝典

1.软考是什么 简单说就是计算机技术 相关的国家级证书考试,想听专业点给大家截一张官网的图,不想听废话直接往下。 同为国家级证书的:注册会计师、法律职业资格证、一级建筑师,证书的价值是比较高的。 很多人都是在求职前或者大…

【面试经典 150 | 二叉树层序遍历】二叉树的右视图

文章目录 写在前面Tag题目来源解题思路方法一:层序遍历方法二:深度优先搜索 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于…

全球媒体发稿:海外发稿数字期刊Digital Journal

全球媒体发稿:海外发稿数字期刊Digital Journal ​官网: digitaljournal.com 数字期刊,加拿大知名门户,月访量超过30万。 是一个全球媒体平台和内容合作伙伴,通过捕捉和报道第一,提升新闻周期中的声…

快手本地生活服务商系统怎么操作?

当下,抖音和快手两大短视频巨头都已开始布局本地生活服务,想要在这一板块争得一席之地。而这也很多普通人看到了机遇,选择成为抖音和快手的本地生活服务商,通过将商家引进平台,并向其提供代运营服务,而成功…

工厂数字化系统是自研,还是对外采购

数字化转型在企业中变得越来越普遍,众多数字化项目的增加也引发了自研和采购数字化系统的讨论。自研和采购各有优劣,需要根据企业的实际情况和需求来做出明智的选择。 自研数字化系统 适用情况:重要核心业务、复用率高、需要长期优化迭代的系…

用队列实现栈(力扣第225题)

#include "stdio.h" #include "stdbool.h" #include "string.h" #include "stdlib.h" #include "assert.h"//初始化队列 typedef int QueueDataType;typedef struct queue {QueueDataType val;struct queue* next; }Qnode;t…

符文协议的演变历程:从挑战到创新

在比特币网络长期面临的挑战中,与主流去中心化金融功能的兼容性一直是一大难题。相比之下,以太坊通过ERC-721和ERC-1155代币标准,为NFT和去中心化金融应用提供了支持,而比特币的应用范围却相对有限。然而,近年来&#…

Linux知识点(4)

文章目录 13. 线程13.1 什么是线程13.2 Linux下的线程13.2.1 pthread_create13.2.2 线程为什么高效?13.2.3 线程的优缺点13.2.4 线程异常13.2.5 线程用途 13.4 虚拟地址空间13.5 Linux线程控制13.5.1 POSIX线程库13.5.2 创建线程13.5.3 线程ID及进程地址空间布局13.…

如何构建企业技术架构-解决内部系统连接的问题

随着企业信息化建设的深入,各类管理系统在运营管理中发挥着关键作用。为了实现数据共享、业务流程自动化和决策支持的无缝对接,往往搭建一个高效协同的技术架构至关重要。本文将以人事系统、泛微OA(Office Automation)及ERP&#…

基于Springboot+Vue的Java项目-网上点餐系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

【御控物联】Java JSON结构转换(4):对象To对象——规则属性重组

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON对象 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

Nginx莫名奇妙返回了404

描述 nginx作为反向代理,代理python的服务,但是通过代理访问服务的时候,报了404的错误。 难受的是客户现场没有查看日志的权限,只有查看配置文件的权限,我们检测了几遍配置文件也没有找到问题,哎~ 问题引…

Python兼职:只需要一台电脑宅在家,轻松实现月入过万!

Python兼职副业 Python是一种简单易学、高效强大的编程语言,正变成越来越多人选择的热门技能。不论你是否有编程基础,在学习Python的道路上,坚持每天投入2小时,你将看到巨大的回报。 学习Python不仅可以为你提供更多就业机会&am…

【情侣博客网站】

效果图 PC端 建塔教程 第一步:下载网站源码(在文章下方有下载链接) 第二步:上传到服务器或虚拟主机,解压。 第三步:这一步很关键,数据库进行连接,看图 admin/connect.php就是这…

链表带环问题——leetcode环形链表1 2

证明链表带环 链表的带环问题指的是本该指向NULL的最后一个节点指向了之前的节点,导致链表成环,找不到尾结点的情况,那么我们该如何证明链表带环呢? 我们可以类比物理中的追及问题,让快慢指针同时走,两者相…

element-ui form表单自定义label的样式、内容

element-ui form表单自定义label的样式、内容 效果截图 代码 <el-form size"small" :inline"true" label-width"120px"><el-form-item prop"name"><div slot"label"><i style"color: red;"…