随文

本文探讨了在Java中处理中文数据的常见方法,重点介绍了使用BufferedReader和Scanner类从键盘输入中文数据的过程。通过实例代码,展示了如何将System.in转换为字符流,以及如何读取一行完整的中文数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:

    缓冲输入流是在开发之中,也经常大量使用到工具类,其目的是解决数据的乱码问题,

现在最直观的解决方式就是System.in所带来的问题。

具体内容:

    如果要进行中文数据的处理首先想到的一定是字符流,并且要想完整的处理数据,一定需要到缓冲区。可是对于缓冲区的操作有两种流:

           字符流缓冲区流:BufferedReader BufferedWriter 

           字节流缓冲区流:BufferedInputStream BufferedOutStream

   其中BufferedReader的public String readLinr() throws IOException读取一行数据,以换行符为界。

其构造方法:public BuffereReader(Reader in),System.in不能处理中文,应该用BufferedReader处理中文,System.in是InputStream类型的,故InputStreamReader;  

键盘输入的标准格式:

package 线程;

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

public class TestDemo {

    //System.in是InputStream类型对象
    //BufferedReader的构造方法里面最需要接受Reader类对象
    //利用InutStreamReader将字节流变为字符流
	public static void main(String[] args) throws IOException {
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入数据:");
        String str = buf.readLine(); //以回车作为换行
        System.out.print("输入的内容:"+str);
	}

}

 Scanner类型:

构造方法:public Sanner(InputStream source),接受一个InputStream类对象

在Scanner类里面定义了两大组方法:

                      判断是否有指定数据:public boolean hasNextXxx();

                      取出数据:public String nextXxx();

范例:以键盘输入数据为例

package 线程;

import java.util.Scanner;

public class demo {
  public static void main(String args){
	  Scanner scan = new Scanner(System.in);
	  System.out.print("请输入数据:");
	 if(scan.hasNext()){
		 System.out.print(scan.next());
	 }
	 scan.close();
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值