蓝桥杯java快速输入输出

1.BufferedReader

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

(1)read

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class bufferreader {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		int s1 = bf.read();
		System.out.println("read的输出" + s1);
		int s2 = bf.read();
		System.out.println("read的输出" + s2);
	}

}
/*输出是

read1的输出13
read2的输出10
*/
BufferedReader内部缓冲机制与字符读取顺序
  • 当你使用BufferedReader读取字符时,它有一个内部缓冲区。当你按下回车键时,在基于 Windows 系统(回车换行是\r\n的控制台输入环境下,\r\n这两个字符被放入了缓冲区。

  • 第一个read方法从缓冲区读取了\r(ASCII 码为 13),此时缓冲区中还剩下\n。当第二个read方法被调用时,它就从缓冲区中读取剩下的\n(ASCII 码为 10)。

  • 可以把BufferedReader的缓冲区想象成一个小的字符队列。字符按照输入的顺序进入这个队列,read方法就从这个队列的头部逐个取出字符。当你按下回车键时,\r\n就像两个排队的字符,第一个read取走了\r,第二个read就取走了下一个字符\n

当使用BufferedReader读取字符时,通过read()方法读取单个字符,回车符('\r')或者换行符('\n')在被读取后,它们和其他字符一样,只是普通的字符代码被返回。与其他一些输入读取方式不同的是,BufferedReader的read()方法不会自动忽略回车符。

(2)readLine()

readLine方法遇到回车符(\n)或者\r\n中的\n部分时,它会停止读取当前行。然后,它会返回一个字符串,这个字符串包含了从开始读取到遇到回车符之前的所有字符,而回车符本身不会包含在返回的字符串中,这就是所谓的 “会将回车抛弃”。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class bufferreader {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String s1=bf.readLine();
		System.out.println("s1:"+"("+s1+")");
		String s2=bf.readLine();
		System.out.println("s2:"+"("+s2+")");
	}

}
/*
123
s1:(123)
456
s2:(456)
*/

使用split()

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class bufferreader {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String[] s=bf.readLine().split(" ");
		for(String a:s)
			System.out.print(a);

	}

}
/*
a b c d e  f
abcdef
*/

2.BufferedWriter

BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(System.out));

主要使用 BufferedWriter类中的 write() 类进行输出。 当数据量大的时候一定要使用这个类进行输出,谨记!

BufferedWriterwrite函数主要用于将字符数据写入到输出流中。它可以写入单个字符、字符数组或者字符串。这个类通常用于缓冲字符输出,减少物理写入操作的次数,从而提高输出效率。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;

public class bufferreader {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
		char a='a';
		bw.write(a);//a
		bw.newLine();//换行
		
		char[] characters = {'H', 'e', 'l', 'l', 'o'};
        bw.write(characters);//Hello
        bw.newLine();
        //bw.flush();
        String text = "Hello, World!";
        bw.write(text);//Hello, World!
        bw.newLine();
        //0开始位置,5截取长度
        bw.write(characters, 0, 5);//Hello
        bw.newLine();
        
        bw.write(text,0,5);//Hello
		bw.close();
		//close方法:close方法在关闭BufferedWriter时,会自动调用flush方法。
		//flush方法的作用是将缓冲区中的内容强制输出到目标输出流。
		//在这种情况下,目标输出流是System.out,所以当close被调用时,缓冲区的数据会被输出到控制台。
		//手动flush操作:如果不调用close,但手动调用flush方法,也可以将缓冲区的数据输出到控制台。
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值