java I/O输入输出优化


/*
 * A Input/output operations in Java may be very slow in the case of wrong usage.
 *
 * Here are some rules which should be followed to avoid input/output performance problems:
 *Scanner is suitable to read input data for the most of problems,
 *but it is very slow. You should use it to read small input data only.
 *
 *BufferedReader provides quite fast read operations for almost all problems.
 *But this class may be used to read single characters and lines only.
 *
 *To read tokens and numbers you should use StringTokenizer or StreamTokenizer.
 *PrintWriter is preferred in all cases and works rather fast.
 *But its method printf is too slow as well as calls like println(a+" " + b).
 *You should output variables one-by-one to reach the highest performance.
 *
 *To read and write ASCII characters with codes more than 127 in the same way as in other programming languages,
 *you should use the following constructors:
 *Scanner scanner = new Scanner(System.in, "ISO-8859-1");
 *BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, "ISO-8859-1"));
 *PrintWriter writer = new PrintWriter(new OutputStreamWriter(System.out, "ISO-8859-1"));
 *
 */

 

import java.util.Scanner;
import java.math.*;
import java.io.*;


public class IOput {

 public static void method1(){
  Scanner cin =new Scanner(System.in);
  while(cin.hasNext()){
   BigInteger a = cin.nextBigInteger();
   BigInteger b = cin.nextBigInteger();
   BigInteger c = a.add(b);
   System.out.println(c);
  }
 }
 
 public static void method2() throws Exception{
  StreamTokenizer cin = new StreamTokenizer(new InputStreamReader(System.in));
  PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  while(cin.nextToken()!=StreamTokenizer.TT_EOF){
   int a =  (int)cin.nval;
   cin.nextToken();
   int b= (int)cin.nval;
   out.print(a+b);
  }
  out.flush();
 }
 
 public static void main(String args[]){
  //这里重定向标准输入输出,然后可调用上方法

  BufferedInputStream  in = new BufferedInputStream(new FileInputStream("d:/test.txt"));

  printStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream("d:/result.txt")));

  System.setIn(in);

  System.setOut(out);

  method1();

  method2();
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值