- 基本知识
流:流是字节序列的抽象
文件是数据的静态存储形式,而流是指数据传输的形态
流分为两大类:节点流和过滤流类(也叫做处理流)
InputStream:描述了所有的输入流的抽象概念,抽象类,其他所有的输入流都是InputStream的子类
方法:
int read():从输入流中读取一个字节数据,并转换为int数据类型(将一个字节数据放到int数据(占4个字节)的低字节,范围为0-255);若无子节可以读取,则发生阻塞,返回-1;
int read(byte[] b):
int read(byte[] b,int off,int end):
long skip(long n):跳过第n个字节,并返回跳过的个数n;包装流(过滤流、处理流)
int avaliable():
void mark(int readlimit):从当前的标志开始,最多可以读取多少(过滤流、处理流)
void reset():(过滤流、处理流)
boolean markSupported():
void close():
OutputStream:描述了所有的输出流的抽象概念,抽象类,其他说有输出流都是OutputStream的子类。
方法:
void write(int b):
void write(byte[] b):
void write(byte[] b,int off,int end):
void flush():清空类中缓冲区的数据,并输出到输出流
void close():
InputStream和OutputStream为所有输入和输出流(字节流)的父类,它们是Abstract类(不能被继承),用于被继承。
Reader和Writer为所有输入和输出流(字符流)的父类,它们是Abstract类(不能被继承),用于被继承。
它们均是节点流,继承于它们的那些子类为过滤流(也可以叫做包装流)
2、ID1000 编程:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SumDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();
StringTokenizer st = new StringTokenizer(line);
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
System.out.println(a+b);
}
}
14830608 Sunrise_yms 1000 Accepted 1848K 532MS Java 583B 2015-10-20 15:56:39
System.in:为InputStream的一个实例;InputStreamReader时将字节流转换为字符流;BufferedReader又封装了InputStreamReader,可以读取一行(readLine);
StringTokenizer是java中object类的一个子类,默认是使用” \t\n\r\f”作为分隔符;
见源码StringTokenizer的构造方法:
public StringTokenizer(String str)
{
this(str," \t\n\r\f",false);
}
该功能类似于String的split方法。由于StringTokenizer是出于兼容性的原因而被保留的遗留类,建议使用String的split方法或java.util.regex;
替换为split方法后代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SumDemo {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();
// StringTokenizer st = new StringTokenizer(line);
// int a = Integer.parseInt(st.nextToken());
// int b = Integer.parseInt(st.nextToken());
// System.out.println(a+b);
String[] read = line.split(" ");
int a = Integer.parseInt(read[0]);
int b = Integer.parseInt(read[1]);
System.out.println(a+b);
}
}
14835421 Sunrise_yms 1000 Accepted 1932K 594MS Java 561B 2015-10-21 21:40:57