zoukankan      html  css  js  c++  java
  • IO流之间的转换应用

    package com.laoxu.test.day01.streamDemo;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;

    /**
    * 通过IO流复制文件
    * @author Administrator
    *
    */
    public class InputAndOutPutStreamDemo {

    private static boolean IO_IS_SUCCESS = true;
    /**
    * 获取文件路径,判断是否存在该文件或者该文件路径是否正确
    * @param fileName
    * @return
    */
    private static File getFile(String fileName){
    File file = new File(fileName);
    if(file.exists()&&file.isFile())
    return file;
    return null;
    }
    private static File getOutputFile(String outfileName){
    return new File(outfileName);
    }
    /**
    * 获取文件的IO流
    * @param file
    */
    private static FileInputStream getInputStream(File file){
    if(file==null){
    System.out.println("getInputStream error");
    return null;
    }
    try {
    FileInputStream fis = new FileInputStream(file);
    return fis;
    } catch (Exception e) {
    e.printStackTrace();
    try {
    throw new FileNotFoundException(e.getMessage());
    } catch (Exception e1) {
    e1.printStackTrace();
    }
    }
    return null;
    }
    /**
    * 通过传递的InputStream和OutputStream,将文件复制,输出
    * @param file
    * @param fis
    * @return
    * @throws IOException
    */
    private static boolean outputInfo(BufferedReader br,BufferedWriter bw) {
    if(br==null || bw==null){
    return !IO_IS_SUCCESS;
    }
    try {
    String str = "";
    while(true){
    str = br.readLine();
    if(str==null){
    break;
    }
    bw.write(str+" ");
    }
    closeStream(br);
    closeStream(bw);
    return IO_IS_SUCCESS;
    } catch (Exception e) {
    e.printStackTrace();
    return !IO_IS_SUCCESS;
    }

    }
    /**
    * 获取缓冲字符输入流
    */
    private static BufferedReader getBufferReader(FileInputStream fis){
    return new BufferedReader(new InputStreamReader(fis));
    }
    /**
    * 获取缓冲字符输出流
    */
    private static BufferedWriter getBufferWrite(FileOutputStream fos){
    return new BufferedWriter(new OutputStreamWriter(fos));
    }
    /**
    * 获取输出OutputStream流
    * @param file
    * @return
    */
    private static FileOutputStream getOutputStream(File file){
    if(file==null){
    return null;
    }
    try {
    FileOutputStream fos = new FileOutputStream(file);
    return fos;
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    try {
    throw new Exception(e.getMessage());
    } catch (Exception e1) {
    e1.printStackTrace();
    }
    return null;
    }
    }
    /**
    * 关闭流
    * @param obj
    * @throws IOException
    */
    public static void closeStream(Object obj) throws IOException{
    if(obj!=null){
    if(obj instanceof FileInputStream){
    ((FileInputStream) obj).close();
    return ;
    }else if(obj instanceof FileOutputStream){
    ((FileOutputStream) obj).close();
    return ;
    }
    else if(obj instanceof BufferedReader){
    ((BufferedReader) obj).close();
    return ;
    }
    else if(obj instanceof BufferedWriter){
    ((BufferedWriter) obj).close();
    return ;
    }
    else if(obj instanceof InputStreamReader){
    ((InputStreamReader) obj).close();
    return ;
    }
    else if(obj instanceof OutputStreamWriter){
    ((OutputStreamWriter) obj).close();
    return ;
    }

    }
    return ;
    }
    /**
    * 整合方法
    * @param inputFile
    * @param outFile
    */
    public static boolean copyMethod(String inputFile,String outFile){
    return outputInfo(getBufferReader(getInputStream(getFile(inputFile))),getBufferWrite(getOutputStream(getOutputFile(outFile))));

    }


    /**
    * 测试方法
    * @param args
    */
    public static void main(String[] args) {
    String inputFile = "C:"+File.separator+"debug.ini";
    String outFile = "C:"+File.separator+"debug.txt";
    if(copyMethod(inputFile, outFile)){
    System.out.println("success");
    }else{
    System.out.println("error");
    }
    }


    }

  • 相关阅读:
    正则表达式转换python2的print为python3风格
    译:Local Spectral Graph Convolution for Point Set Feature Learning-用于点集特征学习的局部谱图卷积
    Objectbox Box的getAll() 函数返回emptylist() 未判断导致崩溃
    关于定义顺序和内存分配的关系--记一道不严谨的C语言题
    iRecognizer号码扫描开发实录
    我的visual studio 配色方案 Rubik c++版
    Opencv4android的Android Studio环境配置及项目实例下载
    随便记录下
    linux下在先安装32位qt 链接
    python笔记
  • 原文地址:https://www.cnblogs.com/xuzhenmin/p/3291843.html
Copyright © 2011-2022 走看看