对文件的操作,FileInputStream,FileOutputStream

public class FileStreamTest {

    public static void writeDataTest() {
        String separator = System.getProperty("line.separator");// 得到(\r\n)回车换行
        String classPath=System.getProperty("user.dir");//得到项目所在的绝对路径
        
        String s = "涨跌幅加快了当时的" + separator + "尸毒方剂安防是大是大非链接卡上" + separator+ "发生的飞";

        byte[] b = s.getBytes();

        try {
            FileOutputStream output = new FileOutputStream(classPath+"/output.txt");// 文件不存在会自动创建

            output.write(b);// 写操作
            output.flush();// 确保所有数据写完
            output.close();// 将流关闭

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void readData(){
        Class c=FileStreamTest.class;
        
//        InputStream input=c.getResourceAsStream("output.txt");
        try{
            //Class对象对应的Class文件处寻找资源,如果资源没有找到,就返回null,如果找到,就返回此资源的URL表示形式
            URL url=c.getResource("output.txt");
            
            //getResource()方法返回的是参数指定的资源的URL形式,
            //但如果想将数据写入到资源中,我们就需要使用FileOutputStream流,
            //而要使用这个流,我们又必须使用File对象,将URL转为URI
            URI uri=url.toURI();
            
            File file=new File(uri);
            
            int fileLen=(int)file.length();//所对应文件的长度
            
            byte[] datas=new byte[fileLen];
                
            FileInputStream input=new FileInputStream(file);
            
            input.read(datas);//将文件读到字节数据里
            
            input.close();//将流关闭
            
            
            System.out.println(new String(datas));//将所读到的数据输出
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }
    
    public static void readData02(){
        Class c=FileStreamTest.class;
        
        String classPath=System.getProperty("user.dir");
        
        InputStream input=c.getResourceAsStream("output.txt");
        
        try{
            FileOutputStream out=new FileOutputStream(classPath+"/output.txt",true);//对文件进行追加
            
            int datasLen=input.available();//获取文件的长度
            
            byte[] datas=new byte[datasLen];
            
            input.read(datas);//读指定文件
            
            input.close();
            
            out.write(datas);
            
            System.out.println(new String(datas));
        }catch(Exception e){
            e.printStackTrace();
        }
        
    }
    public static void main(String[] args) {
//        FileStreamTest.writeDataTest();
        
//        FileStreamTest.readData();
        
        FileStreamTest.readData02();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值