其他流
  TEZNKK3IfmPf 2023年11月12日 23 0

其他流

总结于尚硅谷学习视频
1.标准的输入、输出流
其他流

2、打印流
其他流

3、数据流
其他流

OtherStreamTest类

package com.day0316_3;

import org.junit.jupiter.api.Test;

import java.io.*;
import java.sql.Struct;

/** * 其他流的使用 * 1.标准的输入、输出流 * 2、打印流 * 3、数据流 */
public class OtherStreamTest {
     
       
    /* 1.标准的输入、输出流 1.1 System.in:标准的输入流、默认从键盘输入 System.out:标准的输出流、默认从控制台输出 1.2 System类的方法setIn(InputStream is) / setOut(PrintStream out) 方式重新指定输入和输出的流。 1.3 从键盘输入字符串,要求将读入到的整行字符串转换为大写输出。然后继续进行输入操作, 直至当输入“e”或者“exit”时,退出程序。 方法一:使用Scanner实现,调用next()返回一个字符串 方法二:使用System.in实现. System.in---->转换流-->BufferedReader的readLine() */

    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();
                }
        }



    }

    /* 2.打印流 :PrintStream和PrintWrite 2.1 提供了一系列重载的print()和println() 2.2 练习: */
    @Test
    public void test2(){
     
       
        PrintStream ps=null;
        try {
     
       
            FileOutputStream fos =new FileOutputStream(new File("hello5.txt"));
            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){
     
       
                    System.out.println();
                }
            }
        } catch (FileNotFoundException e) {
     
       
            e.printStackTrace();
        } finally {
     
       
            if(ps!=null)
                try {
     
       
                    ps.close();
                } catch (Exception e) {
     
       
                    e.printStackTrace();
                }
        }


    }

    /* 3.数据流 3.1 DataInputStream和DataOutputStream 3.2 作用:用于读取或写出基本数据类型或字符串 练习:将内存中的字符串、基本数据类型的变量写出的文件中 注意:处理异常是,仍然使用try-catch-finally */

    @Test
    public void test3() throws IOException{
     
       
        //1
        DataOutputStream dos=new DataOutputStream(new FileOutputStream("data.txt"));
        //2
        dos.writeUTF("刘建成");
        dos.flush();//刷新操作,将内存中的数据写入到文件
        dos.writeInt(23);
        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();


    }



}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   24天前   51   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf