Java学习笔记(二十六)

在完成对C语言的学习后,我最近开始了对C++和Java的学习,目前跟着视频学习了一些语法,也跟着敲了一些代码,有了一定的掌握程度。现在将跟着视频做的笔记进行整理。本篇博客是整理Java知识点的第二十六篇博客。

本篇博客介绍了Java的标准输入输出流和打印流。

本系列博客所有Java代码都使用IntelliJ IDEA编译运行,版本为2022.1。所用JDK版本为JDK11

目录

标准输入输出流

标准输入流

标准输出流

打印流

字节打印流

字符打印流

复制文件


标准输入输出流

标准输入流

System类中有两个静态成员变量。

public static final InputStream in是标准输入流,通常用于键盘输入或由主机环境或用户指定的另一个输入源。

public static final PrintStream out是标准输出流,通常用于显示输出或者主机环境或用户指定的另一个输出目标。

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class stdinput {
    public static void main(String[] args) throws IOException {
        InputStream is = System.in;
        InputStreamReader isr  = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        System.out.println("Please enter a string: ");
        String s;
        s = br.readLine();
        System.out.println("The string is " + s);

        System.out.println("Please enter a int");
        int i;
        i = Integer.parseInt(br.readLine());
        System.out.println("The int is " + i);
        br.close();
    }
}

这段代码封装了一个输入流,首先将一个InputStream流赋值为System.in,然后将其作为参数用于创建InputStreamReader流,然后再封装成一个BufferedReader流对象br。然后就可以通过br进行输入。

下面是程序的一个运行示例:

Please enter a string: 
Hello Java
The string is Hello Java
Please enter a int
10
The int is 10

这样用起来很麻烦,Java提供了Scanner类用于键盘录入。

标准输出流

import java.io.PrintStream;
public class stdoutput {
    public static void main(String[] args){
        PrintStream ps = System.out;
        ps.println("Hello Java");
        ps.println(14);
        ps.close();
    }
}

程序创建了一个PrintStream流对象ps,赋值为System.out。随后可以用ps流进行输出。程序的输出结果是:

Hello Java
14

输出语句的本质是一个标准的输出流。

打印流

字节打印流

打印流分为字节打印流字符打印流。打印流只负责输出数据,不负责读取数据。

PrintStream是字节打印流。使用PrintStream需要导包,import java.io.PrintStream

PrintStream(String fileName)使用指定的文件名创建新的打印流。

使用继承父类的方法写数据,查看的时候会进行转码。使用自己特有的方法写数据,查看的数据原样输出。

import java.io.FileNotFoundException;
import java.io.PrintStream;
public class output1 {
    public static void main(String[] args) throws FileNotFoundException {
        PrintStream ps = new PrintStream("test3.txt");
        ps.write(49);
        ps.write(52);
        ps.write(10);

        ps.println("This is about 14 o'clock");
        ps.print("We must study very hard");
        ps.close();
    }
}

程序无输出,test3.txt的内容是:

14
This is about 14 o'clock
We must study very hard

字符打印流

PrintWriter是字符打印流,使用PrintWriter需要导包,import java.io.PrintWriter

PrintWriter(String fileName)使用指定的文件名创建一个流,不用自动进行刷新。

PrintWriter(Writer out,boolean autoFlush)创建一个新的流,out是字符输出流,autoFlush是一个布尔值,为真则println printf或format方法将刷新输出缓冲区。

import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class output2 {
    public static void main(String[] args) throws FileNotFoundException {
        PrintWriter pw = new PrintWriter("test3.txt");
        pw.write(49);
        pw.write(53);
        pw.write(10);

        pw.println("This is already 15 o'clock");
        pw.println("Continue!");
        pw.close();
    }
}

程序无输出,test3.txt的内容是:

15
This is already 15 o'clock
Continue!
 

复制文件

import java.io.*;

public class readwrite {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("test3.txt"));
        PrintWriter pw = new PrintWriter("test2.txt");

        String s;
        while((s = br.readLine()) != null){
            pw.println(s);
        }
        br.close();
        pw.close();
    }
}

程序无输出,test2.txt的内容与test3.txt的内容一致,是:

15
This is already 15 o'clock
Continue!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值