Java自学-I/O 控制台输入流System.in

Java 控制台输入流 System.in和Scanner

System.out 是常用的在控制台输出数据的
System.in 可以从控制台输入数据

步骤 1 : System.in

package stream;

import java.io.IOException;
import java.io.InputStream;

public class TestStream {

    public static void main(String[] args) {
        // 控制台输入
        try (InputStream is = System.in;) {
            while (true) {
                // 敲入a,然后敲回车可以看到
                // 97 13 10
                // 97是a的ASCII码
                // 13 10分别对应回车换行
                int i = is.read();
                System.out.println(i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

步骤 2 : Scanner读取字符串

使用System.in.read虽然可以读取数据,但是很不方便
使用Scanner就可以逐行读取了

package stream;

import java.util.Scanner;

public class TestStream {

    public static void main(String[] args) {

            Scanner s = new Scanner(System.in);

            while(true){
                String line = s.nextLine();
                System.out.println(line);
            }

    }
}

步骤 3 : Scanner从控制台读取整数

使用Scanner从控制台读取整数

package stream;

import java.util.Scanner;

public class TestStream {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        System.out.println("第一个整数:"+a);
        int b = s.nextInt();
        System.out.println("第二个整数:"+b);
    }
}

练习自动创建类

自动创建有一个属性的类文件。
通过控制台,获取类名,属性名称,属性类型,根据一个模板文件,自动创建这个类文件,并且为属性提供setter和getter

public class @[email protected] {
    public @[email protected] @[email protected];
    public @[email protected]() {
    }
    public void [email protected]@(@[email protected]  @[email protected]){
        [email protected]@ = @[email protected];
    }

    public @[email protected]  [email protected]@(){
        return [email protected]@;
    }
}

答案

package stream;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class TestStream {

    public static void main(String[] args) {
        // 接受客户输入
        Scanner s = new Scanner(System.in);
        System.out.println("请输入类的名称:");
        String className = s.nextLine();
        System.out.println("请输入属性的类型:");
        String type = s.nextLine();
        System.out.println("请输入属性的名称:");
        String property = s.nextLine();
        String Uproperty = toUpperFirstLetter(property);

        // 读取模版文件
        File modelFile = new File("E:\\project\\j2se\\src\\Model.txt");
        String modelContent = null;
        try (FileReader fr = new FileReader(modelFile)) {
            char cs[] = new char[(int) modelFile.length()];
            fr.read(cs);
            modelContent = new String(cs);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }      

        //替换

        String fileContent = modelContent.replaceAll("@[email protected]", className);
        fileContent = fileContent.replaceAll("@[email protected]", type);
        fileContent = fileContent.replaceAll("@[email protected]", property);
        fileContent = fileContent.replaceAll("@[email protected]", Uproperty);
        String fileName = className+".java";

        //替换后的内容
        System.out.println("替换后的内容:");
        System.out.println(fileContent);
        File file = new File("E:\\project\\j2se\\src",fileName);

        try(FileWriter fw =new FileWriter(file);){
            fw.write(fileContent);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("文件保存在:" + file.getAbsolutePath());
    }

    public static String toUpperFirstLetter(String str){
        char upperCaseFirst =Character.toUpperCase(str.charAt(0));
        String rest = str.substring(1);
        return upperCaseFirst + rest;

    }
}

原文地址:https://www.cnblogs.com/jeddzd/p/11790179.html

时间: 2024-10-12 03:16:53

Java自学-I/O 控制台输入流System.in的相关文章

Java自学笔记(三)——输入

因为最近学的内容实际操作比较多,所以新的笔记就用代码为主体吧! 本回主要内容是输入,Java中主要用Scanner类和BufferedReader.总体来说不难,但有些细节可以总结,看代码: import java.io.*; import java.util.Scanner; public class ioTest { public static void main(String[] args) throws Exception { //Scanner提供了多种构造器,不同的构造器可以接受文件

java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口 服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 其实呢,我觉得他就是一个能对我们的WEB应用监控的组件,让我们可以了解到我们的程序运行的情况 ,以及出错后

【转】JAVA自学之路

JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势. 一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的

Java 自学笔记-基本语法3setOut()方法设置新的输出流

1 package hahaa; 2 3 import java.io.FileNotFoundException; 4 import java.io.PrintStream; 5 6 public class ha { 7 public static void main(String[] args) { 8 try { 9 PrintStream out = System.out; //保存原输出流 10 PrintStream ps = new PrintStream("./log.txt&

[转载] JAVA自学之路

原文链接http://blog.csdn.net/mengxin846/article/details/2219844 虽然文章有点旧但还是有些启发的,譬如要事第一,好读书不求甚解. JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢? 我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当 成学生

马士兵:JAVA自学之路

JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训.决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向呢?我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧. 每个培训机构都会宣传自己的好处,并不能说明大的趋势.一些新闻文章很有可能是枪手写的,不必太过相信.国外背景的教师和课

JAVA之IO技术键盘录入 System.in

package ioTest.io2; import java.io.IOException; import java.io.InputStream; /* *键盘录入:如果录入的是一行数据打印,如果录入了over就结束录入 *System.in:标准输入流对象 *System.out:标准输出流对象 */ public class ReadIn { public static void main(String[] args) throws IOException { //read2(); re

Java自学笔记(四)—— 集合类总结

今天来总结总结Java集合类.集合类又叫容器类,它封装了很多我们学过的数据结构,这些现成的集合类,实现了各种操作,使用起来非常方便,今天的总结也是以代码为主. 集合大致分为Set.List.Map三种体系.但实际上Java集合类主要由两个接口派生而出,Collection接口和Map接口. Collection接口的子接口: 1.Set,无序,元素不可重复 2.Queue 队列 3.List,有序,元素可以重复 一个个来细说,Set,可以想像成是一个大箱子,里面的东西是无序的,但是有一个条件就是

Java自学笔记(一)

假期重新拾起Java来学,先是拿来<Think in Java>看,但不幸的是,那本书真心有点生涩乏味.于是上豆瓣寻找到一本李刚老师写的<疯狂Java讲义>,这几天看了一百来页,来总结总结.网上对于此书的评论,捧的大致上说这本书相对于国外教材来说,语言贴近中国人思维,容易理解,而且内容翔实:批的说这本书太罗嗦,让人捉不到重点.实际上,就我这几天的阅读看来,这本书是非常适合我的,在细节方面的解释,以及在底层原理的揭示,在我看来,正是学习一门新语言不可或缺的东西. 对于像我这样从汇编语