A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寇龙飞 中级黑马   /  2012-9-13 12:01  /  1806 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.itheima.test;

  2. import java.io.Console;

  3. public class ConsoleTest {
  4.         public static void main(String[] args) {
  5.                 Console console = null;
  6.                 System.out.println("请任意输入一个字符串,敲回车结束:");
  7.                 String str = console.readLine();
  8.                 System.out.println(str);
  9.         }

  10. }
复制代码
奇了怪了。运行报错:
  1. Exception in thread "main" java.lang.NullPointerException
  2.         at com.itheima.test.ConsoleTest.main(ConsoleTest.java:9)
  3. 请任意输入一个字符串,敲回车结束:
复制代码
API中是这么说的,我的用法怎么不对啊。
  1. readLine
  2. public String readLine()从控制台读取单行文本。

  3. 返回:
  4. 包含从控制台读取的行的字符串,该字符串不包含任何行终止符;如果已到达流的末尾,则返回 null。
  5. 抛出:
  6. IOError - 如果发生 I/O 错误。
复制代码

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

5 个回复

正序浏览
尤圣回 发表于 2012-9-13 20:43
public class ConsoleTest {
        public static void main(String[] args) {
                Consol ...

public class ConsoleTest {
        public static void main(String[] args) {
                Console console = null;
                System.out.println("请任意输入一个字符串,敲回车结束:");      
                  //这边要加上键盘输入流啊 没有你这么去读
                  
                String str = console.readLine();
                System.out.println(str);
        }

}
回复 使用道具 举报
尤圣回 发表于 2012-9-13 15:02
空指针异常 这类异常一般会出现在对象为初始化 就调用 也技术说 引用指针指向的对象还不存在 ...

public class ConsoleTest {
        public static void main(String[] args) {
                Console console = null;
                System.out.println("请任意输入一个字符串,敲回车结束:");

                String str = console.readLine();
                System.out.println(str);
        }

}
回复 使用道具 举报
SOS !!who can help me?
回复 使用道具 举报
空指针异常 这类异常一般会出现在对象为初始化 就调用 也技术说 引用指针指向的对象还不存在

点评

嗯。 怎么解决这个问题,求实现代码。  发表于 2012-9-13 20:01
回复 使用道具 举报
本帖最后由 舒远 于 2012-9-13 12:30 编辑

console 对象未初始化呢,是一个空引用,直接调用readLine方法肯定会报NullPointerException了,
获取console对象的方式:System.console();
但是如果你是在eclipse中执行的代码,是无法获取到console对象的,返回的就是null。
必须在控制台上才能获取到。

点评

怎么用 求代码  发表于 2012-9-13 20:01
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马