java里的输入与输出

2023-11-02

一、概述

输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。

Java语言体系中,对数据流的主要操作都封装在http://java.io包中,通过http://java.io包中的类可以实现计算机对数据的输入、输出操作。在编写输入、输出操作代码时,需要用import语句将http://java.io包导入到应用程序所在的类中,才可以使用http://java.io中的类和接口。

二、输入语句

1.使用Scanner类:

(1)使用java.util包。 import java.util.*;

(2)构造Scanner类对象,它附属于标准输入流System.in。 Scanner s = new Scanner

(3)常用的next()方法系列: nextInt():输入整数 nextLine():输入字符串 nextDouble():输入双精度数 next():输入字符串(以空格作为分隔符)。

import java.util.*;  
public class DEMO_1 {  
    public static void main(String[] args){  
        Scanner s = new Scanner
        System.out.print("输入你的姓名:");  
        String name = s.nextLine();  
        System.out.print("输入你的年龄:");  
        int age = s.nextInt();  
        System.out.println("姓名:" + name + "  年龄:" + age );  
        s.close();         //若没有关闭Scanner对象将会出现警告  
    }  
} 

注释:代码第1行创建了一个Scanner类的对象,这个对象是用来输入的。后面的代码是从控制台的输入中取出一个值,赋值给对应的变量。

2.使用java.io.BufferedReader和java.io.InputStreamReader:

步骤:

(1)使用http://java.io包。 import java.io.*;

(2)构造 BufferedReader类对象,它附属于标准输入流System.in

BufferedReader br = new BufferedReader(new InputStreamReader

public class Sandbox4 extends Sandbox2{
    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
        String str = null;  
        while(true){
            try {  
                str = br.readLine();  
            }catch(IOException e){
                e.printStackTrace();
            }
            if(str.equals("END"))break;
            System.out.print(str);
        }
    }
}

请注意:

(1)read方法:读取单个字符。 返回:作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1 ;

(2)readLine方法:读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。

3、使用java.io.Console:

public class Sandbox4 extends Sandbox2{
    public static void main(String[] args) {
        Console console = System.console();  
        if (console == null) {  
            throw new IllegalStateException("Console is not available!");  
        } 
        String str = null;
        while(true){
            str = console.readLine("请输入"); 
            if("END".equals(str))break;
            System.out.println(str);
        }        
    }
}

输入问题解惑:

答案:

注:该问题图片来源于百度知道。

三、输出语句

Java中的输出语句有以下四种:

System.out.println(1111);//换行打印
System.out.print(1111);//不换行打印
System.out.write(2222);//字节输出
System.out.printf("%+8.3f\n", 3.14);//按格式输出

1.System.out.println(); 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台

2.System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java里的输入与输出 的相关文章

  • 使用 Intellij Idea 和 gradle 在应用程序引擎上调试 localhost

    我正在使用 IntelliJ 社区添加并使用 Gradle 构建应用程序引擎标准环境应用程序 在迁移到 IntelliJ 和端点框架之前 我使用的是 Android Studio 我无法调试我的本地主机 我添加了 jvmFlags 如下所述
  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • 使用 Java 的 Apache Http 摘要身份验证

    我目前正在开发一个 Java 项目 但无法使 http 摘要身份验证正常工作 我尝试使用 Apache 网站 但没有帮助 我有一个需要 HTTP 摘要身份验证的网站 DefaultHttpClient httpclient new Defa
  • 两个整数乘积的模

    我必须找到c c a b mod m a b c m 是 32 位整数 但 a b 可以超过 32 位 我正在尝试找出一种计算 c 的方法 而不使用 long 或任何 gt 32 位的数据类型 有任何想法吗 如果m是质数 事情可以简化吗 注
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何在java中将日期格式从YYMMDD更改为YYYY-MM-DD? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我从机器可读代码中获取日期格式为 YYMMDD 如何将其更改为 YYYY MM DD 例如我收到 871223 YYMMDD 我想把它改成
  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 如何区分从 Saxon XPathSelector 返回的属性节点和元素节点

    给定 XML
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • Java RMI - 客户端超时

    我正在使用 Java RMI 构建分布式系统 它必须支持服务器丢失 如果我的客户端使用 RMI 连接到服务器 如果该服务器出现故障 例如电缆问题 我的客户端应该会收到异常 以便它可以连接到其他服务器 但是当服务器出现故障时 我的客户端什么也

随机推荐

  • 软件工程——第12章面向对象实现知识点整理

    本专栏是博主个人笔记 主要目的是利用碎片化的时间来记忆软工知识点 特此声明 文章目录 1 面向对象语言技术的特点
  • MATLAB:用for循环求1、2、……100的和以及用函数文件求前N项和

    MATLAB 用for循环求1 2 100的和以及用函数文件求前N项和 1 A 0 for i 1 100 A A i end A 或 sum 1 100 2 function n A n if n 1 n 1 else n n A n 1
  • iOS UIFont 的学习与使用

    通常 我们使用字体 都是系统默认的字体 有时候 从阅读体验 美观度 设计师都会考虑用一些 更高大尚的字体 系统字体库 给英文 各种style的发挥空间很大 但是 中文则不然 但是苹果 给使用中文的字体的开发者提供了 动态下载字体库的福利 这
  • QT生成.exe安装文件

    QT生成 exe安装文件 找到应用文件的运行的相关文件 1 在QT项目中 使用release进行调试 在release目录下生成 exe文件 release调试目录一般有两种 查看 项目 中的 概要 可以找到release的路径 一般情况下
  • int与byte、byte[]相互转换

    一 int to byte 范围在 128 127之间可以直接转换 超出这个范围就乱了 int i 127 byte b byte i Integer i 127 i byteValue 二 byte to int byte to int
  • docker进入容器出现bash-4.2#解决办法--转载

    docker进入容器显示bash 4 2 如下 root VM 4 15 centos shopmall docker exec it u root 1f654abf60ac bash bash 4 2 出现上述问题是因为在 root 目录
  • 编码规范-枚举管理

    18 枚举 枚举值 一种采用连续序号 0 1 2 3 4 5 6 一种采用二进制位值 0 1 2 4 8 16 还有一种是不规则数字 如串口波特率 枚举值格式 枚举类型变量 枚举类型值 枚举类型说明 枚举值最后标明 默认值 最大值 最小值
  • python交互式解释器下载_python解释器的下载和安装

    1 python解释器的下载 python这样的语言 需要一个解释器 而且解释器还有多种语言的实现 我们介绍的是最常用的C语言的实现 称之为Cpython Python通过在各种操作系统上都有各自的解释器 通过各个操作系统上的解释器 pyt
  • 精选30道Java多线程面试题

    1 线程和进程的区别 2 实现线程有哪几种方式 3 线程有哪几种状态 它们之间如何流转的 4 线程中的start 和run 方法有什么区别 5 怎么终止一个线程 如何优雅地终止线程 6 ThreadLocal在多线程中扮演什么角色 7 线程
  • WEB API 中HTTP的get、post、put,delete 请求方式

    一 WEB API 中HTTP 请求方式的四个主要方法 GET PUT POST DELETE 按照下列方式映射为 CURD 操作 1 POST 用于新建资源 服务端在指定的URI 上创建一个新的对象 将新资源的地址作为响应消息的一部分返回
  • 空间转录组共定位分析的一种方法

    主要是利用了Seurat 里面AddModuleScore函数 View project A33 meta data AddModuleScore ILC1 feature lt list c IL7R CCR6 KLRB1 IFNG IF
  • Dataframe 多行合并为一行

    原表数据 最后4行合并为1行 def ab df return join df values df df groupby 股票代码 股票简称 所属概念 apply ab df df reset index 效果如下 转载于 https ww
  • Qt编译后添加依赖文件到输出目录

    QMAKE POST LINK cp rf PWD lab const 1 xml OUT PWD lab const 1 xml cp rf PWD experiment1 xml OUT PWD experiment1 xml 这个是L
  • Python爬虫必知必会:BeautifulSoup之find_all参数速览

    find all 方法搜索当前tag的所有tag子节点 并判断是否符合过滤器的条件 find all name attrs class recursive string kwargs name 标签名搜索 attrs class 属性 类名
  • *** FATAL ERROR L232: APPLICATION CONTAINS TOO MANY RECURSIONS错误的解决方案

    最近一直在用KEIL写一个单片机的程序 遇到了一个很棘手的无法正常链接的问题 FATAL ERROR L232 APPLICATION CONTAINS TOO MANY RECURSIONS 在网上搜索了大量的文章 以及网页也没找到什么有
  • Redis介绍与使用

    文章目录 一 概念 1 什么是NOSQL 1 1 NOSQL和关系型数据库比较 1 2 非关系型数据库的优势 1 3 关系型数据库的优势 1 4 小结 2 主流的NOSQL产品 3 什么是Redis redis的应用场景 二 下载安装 三
  • rosbag commandline常用命令之filter

    可以实现对已有rosbag文件中的某些topic去除或者保留 rosbag filter input bag output bag topic tf or topic tf and m transforms 0 header frame i
  • 详解.NET实现OAuth2.0四种模式(6)RefreshToken

    我们知道 为了安全起见 AccessToken的有效时间一般是比较短的 如30分钟 在AccessToken超出有效期之后 它就不能再用于访问资源 必须重新获得 但如果每30分钟 就要让用户登录一次 那必定会让用户感到厌烦 于是就产生了Re
  • 公共命名空间,于2022年底

    公共命名空间的想法出现自2019年 到现在有三年了 在2022年底 总结一下这三年来的想法 就像字符集 字体 公共命名空间 新编译原理也是这么一对儿 字符集用来收集所有符号 字体用来显示字符集中的符号 公共命名空间用来收集所有的句子 新编译
  • java里的输入与输出

    一 概述 输入输出可以说是计算机的基本功能 作为一种语言体系 java中主要按照流 stream 的模式来实现 其中数据的流向是按照计算机的方向确定的 流入计算机的数据流叫做输入流 inputStream 由计算机发出的数据流叫做输出流 o