其他流
总结于尚硅谷学习视频
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(); } }