其他分享
首页 > 其他分享> > 标准输入流,输出流,打印流,数据流

标准输入流,输出流,打印流,数据流

作者:互联网

文章目录

标准输入流,输出流

练习:
从键盘输入字符串,要求将读取到的整行字符串转成大写输出。然后继续进行输入操作,直至当输入“e”或者“exit”时,退出程序。

方法一:使用Scanner实现,调用next()返回一个字符串
方法二:使用System.in实现。System.in —> 转换流 —> BufferedReader的readLine()

public class OtherStreamTest {

    public static void main(String[] args) {

        BufferedReader br = null;
        try {
            InputStreamReader isr = new InputStreamReader( System.in );
            br = new BufferedReader( isr );
            while (true) {
                System.out.println( "请输入字符串:" );
                String data = br.readLine();
                if ("e".equalsIgnoreCase( data ) || "exit".equalsIgnoreCase( data )) {
                    System.out.println( "程序结束" );
                    break;
                }
                String upperCase = data.toUpperCase();
                System.out.println( upperCase );
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

打印流

 @Test
    public void test2() {
        PrintStream ps = null;
        try {
            FileOutputStream fos = new FileOutputStream(new File("D:\\IO\\text.txt"));
            // 创建打印输出流,设置为自动刷新模式(写入换行符或字节 '\n' 时都会刷新输出缓冲区)
            ps = new PrintStream(fos, true);
            if (ps != null) {// 把标准输出流(控制台输出)改成文件
                System.setOut(ps);
            }


            for (int i = 0; i <= 255; i++) { // 输出ASCII字符
                System.out.print((char) i);
                if (i % 50 == 0) { // 每50个数据一行
                    System.out.println(); // 换行
                }
            }


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (ps != null) {
                ps.close();
            }
        }

    }

数据流

boolean readBoolean()byte readByte()
char readChar()float readFloat()
double readDouble()short readShort()
long readLong()int readInt()
String readUTF()void readFully(byte[] b)
@Test
    public void test3() throws IOException {
        //1.
        DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.txt"));
        //2.
        dos.writeUTF("大欢");
        dos.flush();//刷新操作,将内存中的数据写入文件
        dos.writeInt(18);
        dos.flush();
        dos.writeBoolean(true);
        dos.flush();
        //3.
        dos.close();


    }
    /*
    将文件中存储的基本数据类型变量和字符串读取到内存中,保存在变量中。

    注意点:读取不同类型的数据的顺序要与当初写入文件时,保存的数据的顺序一致!

     */
    @Test
    public void test4() throws IOException {
        //1.
        DataInputStream dis = new DataInputStream(new FileInputStream("data.txt"));
        //2.
        String name = dis.readUTF();
        int age = dis.readInt();
        boolean isMale = dis.readBoolean();

        System.out.println("name = " + name);
        System.out.println("age = " + age);
        System.out.println("isMale = " + isMale);

        //3.
        dis.close();
    }

标签:PrintStream,打印,System,println,dos,数据流,new,输入,out
来源: https://blog.csdn.net/weixin_45417821/article/details/115583345