BufferedReader怎么挨个数据数据啊??

j_linlian 2019-08-07 11:47:32
比赛,scanner太慢了,想用BufferedReader输入大量数据,多行输入,输入格式是xxx xxx xxx,
可是readLine()会把一整行都输入进去,我想一个一个读数据,求大佬教一下
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
j_linlian 2019-08-10
  • 打赏
  • 举报
回复
引用 7 楼 无心之躯 的回复:
A+B问题的例子。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer sc = new StreamTokenizer(bufferedReader);
        while (sc.nextToken() != StreamTokenizer.TT_EOF) {
            long a = (long) sc.nval;
            sc.nextToken();
            long b = (long) sc.nval;
            System.out.println(a + b);
        }
        bufferedReader.close();
    }
}
谢谢大佬,我去翻翻api先...非常感谢您
j_linlian 2019-08-10
  • 打赏
  • 举报
回复
引用 6 楼 guishuanglin 的回复:
cpp 比java是快些, 但是目前大数据分析的开发语言spark 就是 java的变种, 也是运行在jvm中. c++可不是对手. 不过c++在单程序来说是比java快. 平时我用spark时读取10G的txt数据文件, 大概是 35秒左右, 我看后台spark开了 3000个线程在读同一个文件. c++能做到不? 做不到. 但是你这个比赛题目, 可能用c++写个简单的程序是比java快. [quote=引用 5 楼 j_linlian 的回复:] [quote=引用 3 楼 guishuanglin 的回复:]比赛正常情况, 1比较速度, 2比并发. 如果你用的并发, 别人单线程算法再快, 也没有你多线程快. 先做出来, 然后再优化算法, 最后改成并发执行.
谢谢大佬。我试了一下,还是跑不过...准备换cpp了,反正差不多[/quote][/quote]大佬的留言我已经保存下来了,很多我还看不太懂,我会慢慢学的,谢谢大佬啦
一枚软的硬币 2019-08-10
  • 打赏
  • 举报
回复
A+B问题的例子。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer sc = new StreamTokenizer(bufferedReader);
        while (sc.nextToken() != StreamTokenizer.TT_EOF) {
            long a = (long) sc.nval;
            sc.nextToken();
            long b = (long) sc.nval;
            System.out.println(a + b);
        }
        bufferedReader.close();
    }
}
guishuanglin 2019-08-08
  • 打赏
  • 举报
回复
比赛正常情况, 1比较速度, 2比并发. 如果你用的并发, 别人单线程算法再快, 也没有你多线程快. 先做出来, 然后再优化算法, 最后改成并发执行.
guishuanglin 2019-08-08
  • 打赏
  • 举报
回复

String str ="121504174||1||1552533105||1552532419||686||1||||||1552533125";
		String[] arg = strNum.split("||");
		
guishuanglin 2019-08-08
  • 打赏
  • 举报
回复
只要他有数据格式, 有霍规律的, 读一行还是多行没有影响的, 比如: XML格式, JSON,或者逗号分隔, 或者tab键 总是有格式定义的, 读出来都是一个字符串, 没有必要一定换行. 象我们是这种格式: 121504174||1||1552533105||1552532419||686||1||||||1552533125 读出来之后用代码:

String str ="121504174||1||1552533105||1552532419||686||1||||||1552533125";
		String[] arg = strNum.split(str);
		
guishuanglin 2019-08-08
  • 打赏
  • 举报
回复
cpp 比java是快些, 但是目前大数据分析的开发语言spark 就是 java的变种, 也是运行在jvm中. c++可不是对手. 不过c++在单程序来说是比java快. 平时我用spark时读取10G的txt数据文件, 大概是 35秒左右, 我看后台spark开了 3000个线程在读同一个文件. c++能做到不? 做不到. 但是你这个比赛题目, 可能用c++写个简单的程序是比java快.
引用 5 楼 j_linlian 的回复:
[quote=引用 3 楼 guishuanglin 的回复:]比赛正常情况, 1比较速度, 2比并发. 如果你用的并发, 别人单线程算法再快, 也没有你多线程快. 先做出来, 然后再优化算法, 最后改成并发执行.
谢谢大佬。我试了一下,还是跑不过...准备换cpp了,反正差不多[/quote]
j_linlian 2019-08-08
  • 打赏
  • 举报
回复
引用 3 楼 guishuanglin 的回复:
比赛正常情况, 1比较速度, 2比并发. 如果你用的并发, 别人单线程算法再快, 也没有你多线程快. 先做出来, 然后再优化算法, 最后改成并发执行.
谢谢大佬。我试了一下,还是跑不过...准备换cpp了,反正差不多
qq_39936465 2019-08-08
  • 打赏
  • 举报
回复
引用 楼主 j_linlian 的回复:
比赛,scanner太慢了,想用BufferedReader输入大量数据,多行输入,输入格式是xxx xxx xxx, 可是readLine()会把一整行都输入进去,我想一个一个读数据,求大佬教一下
想一个一个数据读取干么用bufferedreader啊?可以用dateinputstream,可以readchar,readint等等方法一个一个读取各种基本类型,前提是你知道要读取的数据是什么类型,不然读出来的会是乱码。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧