Java入门之IO流

Writer

是所有字符输出流的父类,抽象类,不能实例化,如果需要实例化时只能调用它的子类

子类:OutputStreamWriter BufferedWriter(效率更高)

tips:输出时需要执行flush方法刷新,否则可能文件中无法显示数据

public class Test01 {  
    public static void main(String[] args) throws IOException{  
        //创建对象  
        Writer w1=new OutputStreamWriter(new FileOutputStream("D:\\md\\ac.text"));  
        //声明输出数据  
        String str1="壮士饥餐胡虏肉,笑谈渴饮匈奴血";  
        //输出  
        w1.write(str1);  
        //刷新  
        w1.flush();  
        //关闭资源  
        w1.close();  
    }  
}  
public class Test05 {  
    public static void main(String[] args) throws IOException {  
          
        //Writer w1=new  OutputStreamWriter(new FileOutputStream("c.txt"));  
        BufferedWriter b1=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c.txt")));  
        //写出数据  
        b1.write("我自横刀向天笑");  
        b1.newLine(); //换行作用 
        b1.write("去留肝胆两昆仑");  
        b1.flush();  
        b1.close();  
        //w1.close();  
    }  
} 

Reader

所有字符输入流的父类,抽象类,不能被实例化,创建对象时实例化子类

子类:InputStreamReader BufferedReader

tips:读取字符串和数组是需要进行循环判断

public class Test01 {
	public static void main(String[] args) throws IOException {
		//创建对象
		Reader r1=new InputStreamReader(new FileInputStream("c.txt"));
		//读取
		int num=r1.read();
		//分析结果
		System.out.println(num);
		//关闭资源
		r1.close();
		System.out.println((char)(new FileInputStream("c.txt").read()));
	}
}
public class Test02 {  
    public static void main(String[] args) throws IOException {  
        //创建对象  
        Reader r1=new InputStreamReader(new FileInputStream("c.txt"));  
        //读取  
        int num=0;  
        while((num=r1.read())!=-1) {  
            System.out.print((char)num);  
        }  
        //关闭资源  
        r1.close();  
    }  
}

Writer和Reader的综合应用

public class Test03 {  
    public static void main(String[] args) throws IOException {  
        w("你好呀哈哈");  
        r();  
    }  
    public static void w(String msg) throws IOException {  
        //创建对象  
        Writer w1=new OutputStreamWriter(new FileOutputStream("b.txt"));  
        //输出内容  
        w1.write(msg);  
        //刷新  
        w1.flush();  
        //关闭资源  
        w1.close();  
    }  
    public static void r() throws IOException {  
        Reader r1=new InputStreamReader(new FileInputStream("b.txt"));  
        //读取数据  
        int num=0;  
        while ((num=r1.read())!=-1) {  
            System.out.print((char)num);  
        }  
        r1.close();  
    }  
} 

OutputStream

所有字节输出流的父类,抽象类,不能被实例化,创建对象时实例化子类

子类:FileOutputStream ObjectOutputStream (写出的是对象) PrintStream

public class Test01 {  
    public static void main(String[] args) throws FileNotFoundException, IOException {  
        //创建对象  
        ObjectOutputStream os1=new ObjectOutputStream(new FileOutputStream("a.txt"));  
        //写出数据  
        os1.write(123);  
        os1.writeByte(12);  
        os1.writeInt(123);  
        os1.writeDouble(12.12);  
        os1.writeUTF("hello 少年");//utf-8格式  
    }  
}

InputStream

所有字节输入流的父类,抽象类,不能被实例化,创建对象时实例化子类

子类:FileInputputStream ObjectInputputStream (写出的是对象) System.in

public class Test01 {  
    public static void main(String[] args) throws FileNotFoundException, IOException {  
          
        //创建对象  
        ObjectInputStream os = new ObjectInputStream(new FileInputStream("a.txt")); 
        //读取数据  
        int num = os.readInt();  
        //输出数据  
        System.out.println(num);  
        //读取数据  
        double d = os.readDouble();  
        //输出数据  
        System.out.println(d);  
        //读取数据  
        String s = os.readUTF();  
        //输出数据  
        System.out.println(s);  
        //关闭  
        os.close();  
          
    }  
}  

ObjectOutputStream和ObjectInputStream综合应用

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
//ObjectOutputStream    ObjectInputStream:写入和读取对象的信息
public class Test {
	public static void main(String[] args) throws ClassNotFoundException, IOException {
		w();
		r();
	}
	public static void w() throws FileNotFoundException, IOException {
		User user=new User("张三",1,18);
		//创建对象
		ObjectOutputStream os1=new ObjectOutputStream(new FileOutputStream("v.txt"));
		//写出
		os1.writeObject(user);
		os1.close();
	}
	public static void r() throws ClassNotFoundException, IOException {
		ObjectInputStream os2=new ObjectInputStream(new FileInputStream("v.txt"));
		Object object=os2.readObject();
		System.out.println(object);
		os2.close();
	}
}
import java.io.Serializable;  
  
public class User implements Serializable{  
    private static final long serialVersionUID = 1L;  
        private String name;  
        private int age;  
        private int gender;  
        public User() {  
              
        }  
        public User(String name,int age,int gender) {  
            super();  
            this.age=age;  
            this.gender=gender;  
            this.name=name;  
        }  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }  
        public int getAge() {  
            return age;  
        }  
        public void setAge(int age) {  
            this.age = age;  
        }  
        public int getGender() {  
            return gender;  
        }  
        public void setGender(int gender) {  
            this.gender = gender;  
        }  
        @Override  
        public String toString() {  
            return "User [name=" + name + ", age=" + age + ", gender=" + gender + "]";  
        }  
} 

Scanner

public static void main(String[] args) throws FileNotFoundException {  
    //修改标准输入流的数据源  
    System.setIn(new FileInputStream("a.txt"));  
    Scanner input=new Scanner(System.in);  
    //通过scanner获取数据  
    System.out.println(input.next());  
    //设置标准输出设置到文件中  
    System.setOut(new PrintStream(new File("c.txt")));  
    //通过打印输出内容  
    System.out.println("哈哈");  
    try {  
        input.close();  
        input.next();  
    }catch(IllegalStateException e) {  
        System.out.println(e.getMessage());  
    }         
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! 【优秀课程设计】主要针对计算机相
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值