【JAVA的输入与输出全解】

简介: 【JAVA的输入与输出全解】

一、概述

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

二、输入语句

方法一:.使用Scanner

(1)使用java.util包。 然后引入(或导入) import java.util.*;

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

Scanner s = new Scanner(System.in);(s自定义方法名)

(3)常用的next()方法系列:

  1. nextInt():输入整数
  2. nextLine():输入字符串
  3. nextDouble():输入双精度数
  4. next():输入字符串(以空格作为分隔符)
import java.util.Scanner;
public static void main(String [] args) { 
        Scanner scan = new Scanner(System.in); 
       System.out.println("请输入你的姓名:"); 
        String name = scan.nextLine(); 
       System.out.println("请输入你的年龄:"); 
        int age = scan.nextInt(); 
       System.out.println("请输入你的工资:"); 
        float salary = scan.nextFloat(); 
       System.out.println("你的信息如下:"); 
       System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
}

代码实例:

计算利率输入本金 a,存款年数 n,利率 r,求利息 s。输出的结果精确到分。利息的计算公式如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

备注:实型数据在程序中用 double 类型。

输入格式:

输入本金 a,存款年数 n,利率 r;各个数据之间用空格分隔。

输出格式:

输出利息s。

import java.util.*;\\引入Scanner的包 ||import java.util.Scanner;
public class Main
{
  public static void main (String[] args) 
  {
   Scanner scan = new Scanner(System.in);
   double a = scan.nextDouble(),n = scan.nextDouble(), r = scan.nextDouble();scan.nextDouble();
     double s = a*Math.pow((1+r),n)-a;
     System.out.printf("s=%.2f",s);
  }
}  

注意

next()和nextLine的区别:

在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。

方法二:从控制台接收一个字符,然后将其打印出来

import java.io.;
public static void main(String [] args) throws IOException{ 
       System.out.print("Enter a Char:"); 
        char i = (char) System.in.read(); 
       System.out.println("your char is :"+i); 
} 

虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。

方法三:从控制台接收一个字符串,然后将其打印出来。 在这个题目中,我们需要用到BufferedReader类和InputStreamReader类

步骤:

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

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

import java.io.*;
public static void main(String [] args) throws IOException{ 
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
         String str = null; 
         System.out.println("Enter your value:"); 
         str = br.readLine(); 
         System.out.println("your value is :"+str); 
}

这样我们就能获取我们输入的字符串。

注意

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

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

三、输出语句

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

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

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

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

3.System.out.printf(); 这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。


目录
打赏
0
0
0
0
17
分享
相关文章
【JavaSE】Java基础语法(四十五):TCP UDP 全解
1. TCP发送数据 Java中的TCP通信 Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 Java为客户端提供了Socket类,为服务器端提供了ServerSocket类
Java 8 - Optional全解
Java 8 - Optional全解
115 1
面霸篇:Java 核心集合容器全解(核心卷二)
面霸篇:Java 核心集合容器全解(核心卷二)
76 0
Java基础——ArrayList方法全解(字典版)
ArrayList 方法字典,可用来日常天天见.不用死记硬背,只需要用到的时候知道有这个东西即可.防止重复造轮子...
377 1
|
13天前
|
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
64 17
|
23天前
|
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
Java 多线程 面试题
Java 多线程 相关基础面试题
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。

热门文章

最新文章