黑马程序员技术交流社区

标题: 读取从键盘输入 有scanner 和 InputStream 有区别别吗 [打印本页]

作者: 弃车保    时间: 2015-4-16 11:00
标题: 读取从键盘输入 有scanner 和 InputStream 有区别别吗
  1. import java.util.*;

  2. public class Demo {
  3.         public static void main(String[] args){
  4.                 System.out.println("请输入字符");
  5.                 Scanner sc = new Scanner(System.in);
  6.                 String s = sc.next();        
  7.                 System.out.println(s);
  8.                 sc.close();
  9.         }
  10. }
复制代码

  1. import java.io.*;

  2. public class Demo2 {
  3.         public static void main(String[] args) throws IOException{
  4.                 System.out.println("请输入字符");
  5.                 BufferedReader brs = new BufferedReader(new InputStreamReader(System.in));
  6.                 String s = brs.readLine();
  7.                 brs.close();
  8.                 System.out.println(s);
  9.         }
  10. }
复制代码

还有其他方法从键盘读数据吗?

作者: 最初的バ梦想    时间: 2015-4-16 11:12
同学你好,这是我对Scanner和InputStream两者的认识,希望可以帮到你。
利用 BufferedReader实现从键盘读入字符串并写进文件a.txt中

import java.io.*;
public class InputTest{
public static void main(String[] args) throws IOException{
  BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
  BufferedWriter buf2 = new BufferedWriter(new FileWriter("a.txt"));
  String str = buf.readLine();
  while(!str.equals("exit")){
   buf2.write(str);
   buf2.newLine();
   str = buf.readLine();
  }
  buf.close();
  buf2.close();
}
}
可以看出用上面的代码和和Scanner功能一样也可以实现从键盘录入数据,并且能够将数据写入文件中。
而Scanner和BufferedReader两者的区别就是
在命令行模式下要输入数据至程序中时,我们可以使用标准输入串对象System.in.但是,我们并不经常直接使用它,因为System.in提供的 read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太大的用处.
在Java SE 6中,可以使用Scanner类取得用户的输入,Scanner类位于java.util包中,如果你要使用Scanner取得用户输入的话,要加上 import java.util.Scanner;这条语句.import的功能是告诉编译器,你将使用java.util包中的Scanner类
如果有不足的地方希望大家能够指出,呵呵:lol
作者: 弃车保    时间: 2015-4-16 11:39
本帖最后由 弃车保 于 2015-4-16 11:46 编辑

用 Scanner实现从键盘读入字符串并写进文件a.txt中
  1. import java.io.*
  2. import java.util.*;

  3. public class InputTest1{
  4. public static void main(String[] args) throws IOException{
  5.         Scanner sc = new Scanner(new  InputStreamReader(System.in));
  6. // BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
  7.   BufferedWriter buf2 = new BufferedWriter(new FileWriter("d:\\a.txt"));
  8.   String str = sc.next();
  9.   while(!str.equals("exit")){
  10.    buf2.write(str);
  11.    buf2.newLine();
  12.    str = sc.next();
  13.   }
  14.   sc.close();
  15.   buf2.close();
  16. }
  17. }
复制代码

看着个BufferedReader 和Scanner 好像没有没有不同, 是读取字节与字符的区别吗
作者: 弃车保    时间: 2015-4-16 11:41
本帖最后由 弃车保 于 2015-4-16 11:46 编辑
最初的バ梦想 发表于 2015-4-16 11:12
同学你好,这是我对Scanner和InputStream两者的认识,希望可以帮到你。
利用 BufferedReader实现从键盘读入 ...

上楼用 Scanner实现从键盘读入字符串并写进文件a.txt中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2