ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java学习(149):字符输入流

2019-09-15 10:37:57  阅读:239  来源: 互联网

标签:字符 java 149 try printStackTrace catch new null out


import javax.imageio.IIOException;
import java.io.*;
import java.util.Date;

//字符输入流
public class FileManagerChar {
    public static void readCharFile(File file){
        FileReader fileReader=null;//文本输入流
        if(file.exists()){
            try {
                fileReader = new FileReader( file );//基于目标存在的文本文档输出流
                char[] chs=new char[50];//字符零时缓冲区
                int count=0;//存储实际读取的字符数量
                while((count=fileReader.read(chs,0,chs.length))!=-1){
                    String s=new String( chs,0,count );
                    System.out.println( s );
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    fileReader.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }
    }
    //使用文本缓冲流读取文件
    public static void useBufferReader(File file){
        FileReader read=null;//基于文件的普通输入流
        BufferedReader br=null;//基于某个reader建立的字符缓冲流
        if(file.exists()){
            try {
                read=new FileReader( file );//基于文件建立普通文本输入流
                br=new BufferedReader( read );//基于某个read建立文本缓冲流
                char[] chs=new char[25];
                int count=0;
                while ((count=br.read(chs,0,chs.length))!=-1){
                    String s=new String( chs,0,count );
                    System.out.println( s );
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    br.close();
                    read.close();
                    System.out.println( "关闭成功" );
                }catch (IOException e){
                    e.printStackTrace();
                }
            }

        }
    }
    //字节输出流
    public static void binaryOutStream(String filePath){
        String str="start=E:\\BaiduNetdiskDownload\\baidu6\\1.mp4";
        byte[] bys=str.getBytes();//将字符串转换为字节数组
        OutputStream out=null;
        try {
             out = new FileOutputStream( filePath);
             out.write(bys);
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                out.close();
                System.out.println( "资源关闭" );
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
    //使用字节缓冲输出流
    public static void useBufferedOutput(File file){
        OutputStream out=null;
        BufferedOutputStream bs=null;
        String str="日照香炉生紫烟,\n遥看瀑布挂前川。\n飞流直下三千尺,\n以适应河洛就停";
        byte[] bys=str.getBytes();
    if(file.exists()){
            try {
                System.out.println( file.getAbsolutePath() );
                out = new FileOutputStream( file.getAbsoluteFile()+"/李白诗.doc" );
                bs=new BufferedOutputStream( out );//基于某个outputstream建立缓冲输出流
                bs.write( bys ,0,bys.length);//写入目标文件
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    bs.close();
                    out.close();
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    //字符输出流bufferwrite
    //file文件存储的目录
    //filename 文件名称
    //content 文件内容
    public static void useBufferedWriter(File fir,String fileName,String content){
        File file=null;
        Writer writer=null;
        BufferedWriter bw=null;
        if(fir.exists()){
            file=new File(fir,fileName );
            char chs[]=content.toCharArray();
            try {
                writer=new FileWriter( file );
                bw=new BufferedWriter( writer );//基于Writer实例创建字符缓冲流
                bw.write(chs);//将char型数组所有内容写入到目标文件中
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    bw.close();
                    writer.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }

        }else{
            //创建目录后写入内容
            System.out.println( "目标文件目录没找到" );
        }
    }
    public static void copyFile(File target,File dir){
        InputStream in=null;
        OutputStream out=null;
        File copyFile=null;//目标写的文件对象
        if(target.exists()){//判断目标文件是否存在
            if(!dir.exists()){
                dir.mkdirs();//如果目标文件不存在,创建目录
            }
            try {
                in = new FileInputStream( target );//基于文件建立输入流
                String fileName=target.getName();//获取文件源名称
                //避免文件重名
                copyFile=new File(dir+"/"+new Date().getTime()+fileName);//基于目标写入文件对象
                out=new FileOutputStream( copyFile );//基于目标文件建立输出流
                byte[] bys=new byte[1024];//临时存储字节数据的缓冲区
                int count=0;//记录读取内容的临时变量
                while ((count=in.read(bys,0,bys.length))!=-1){
                    System.out.println( "文件赋值读写中,请稍后----" );
                    out.write( bys,0,count );//将临时缓冲区内容写入到目标文件中
                }
                System.out.println( "目标赋值完成" );
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    out.close();
                    in.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }
    }
    //emp序列化对象
    //target//序列化对象的目标文件
    //java序列化,将员工对象保存到文件中
    public static void javaSer(Employeee emp,File target){
        OutputStream out=null;
        ObjectOutputStream oos=null;//序列化输出流
        if(emp!=null){
            try {
                out = new FileOutputStream( target );
                oos = new ObjectOutputStream( out );
                oos.writeObject( emp );//将序列化对象保存到文件中
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try {
                    oos.close();
                    out.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
    //反序列化
    public static Employeee deser(File target) {
        InputStream in = null;
        ObjectInputStream ois = null;
        Employeee emp = null;
        if (target.exists()) {
            try {
                in = new FileInputStream( target );
                ois = new ObjectInputStream( in );
                //进行反序列化
                Object obj = ois.readObject();
                emp = obj != null ? (Employeee) obj : null;//如果不为空进行类型转换
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }finally {
                try {
                    ois.close();
                    in.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }
        return emp;//返回对象
    }
}

测试类

import java.io.File;

public class test94 {
    public static void main(String[] args){
        File file=new File("e:/2.txt");
        FileManagerChar.readCharFile( file );
    }
}

运行结果

 

标签:字符,java,149,try,printStackTrace,catch,new,null,out
来源: https://blog.csdn.net/weixin_43392489/article/details/100848750

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有