zoukankan      html  css  js  c++  java
  • Java 文件操作

    package com.file.test;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    /**
     * @date 2015-3-17 7:52:06
     * @author y
     * @desc 
     */
    public class FileTest {
        
        /**
         * 通过 BufferedReader 读取文本文件
         * 使用此种方式进进行读取文件,将会忽略回车换行等字符
         * 读取中文推荐此种方式
         * @param fileName 
         */
        public static void readFileByBufferedReader(String fileName){
            FileReader fr = null;
            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();
            
            try {
                fr = new FileReader(fileName);
                br = new BufferedReader(fr);
                
                String line;
                while((line=br.readLine())!=null){
                    sb.append(line);
                }
                
                System.out.println("str:"+sb.toString());
                System.out.println("str.length:"+sb.length());
            } catch (FileNotFoundException ex) {
                Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
            }finally{
                try {
                    if(null!=br){
                        br.close();
                    }
                    if(null!=fr){
                        fr.close();
                    }
                } catch (IOException ex) {
                    Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    
        /**
         * 通过 BufferedInputStream 读取文件
         * 此种方式存在中文乱码问题,关键点在这里:
         * byte buffer[]=new byte[1024];  有可能中文被读取了半个字节
         * 使用ByteArrayOutputStream解决中文乱码问题
         * @param fileName 
         */
        public static void readFileByBufferedInputStream(String fileName){
            File file = new File(fileName);
            
            FileInputStream fis = null;
            BufferedInputStream bis = null;
            ByteArrayOutputStream baos = null;
            
            StringBuilder sb = new StringBuilder();
            
            try {
                fis = new FileInputStream(file);
                bis = new BufferedInputStream(fis);
                baos = new ByteArrayOutputStream();
                
                
                byte buffer[]=new byte[2];
                int b;
                while((b=bis.read(buffer))>0){
                    baos.write(buffer, 0, b);
                }
                
                sb.append(baos.toString());
                
                System.out.println("str:"+sb.toString());
                System.out.println("str.length:"+sb.length());
            } catch (FileNotFoundException ex) {
                Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
            }finally{
                try {
                    if(null!=baos){
                        baos.close();
                    }
                    if(null!=bis){
                        bis.close();
                    }
                    if(null!=fis){
                        fis.close();
                    }
                } catch (IOException ex) {
                    Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        
        /**
         * 创建文件
         * @param fileName 
         */
        public static void createFile(String fileName){
            try {
                File file = new File(fileName);
                
                if(!file.exists()){
                    file.createNewFile();
                    
                    System.out.println("文件创建成功");
                }else{
                    System.out.println("文件已经存在");
                }
            } catch (IOException ex) {
                Logger.getLogger(FileTest.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
  • 相关阅读:
    lower_bound和upper_bound
    memcache教程
    php header() 函数
    修复TortoiseGit文件夹和文件图标不显示
    mysql数据类型
    PDO类PDO、PDOStatement、PDOException
    mysqli和pdo对mysql数据库的操作
    php 关键字
    几个入口文件定义函数
    php --魔术常量 /魔术方法
  • 原文地址:https://www.cnblogs.com/yshyee/p/4343560.html
Copyright © 2011-2022 走看看