多种方式读取文件内容

import java.io.*;java

/**
 *
 * @author wxp
 * Created by Administrator on 2017/10/29 0029.
 */
public class ReadFromFile {
    public static final String DEPATH = "D:/test/deFile/test.jsp";
    public static final String IMAGEPATH = "C:\\Users\\Administrator\\Desktop\\logo.png";
   /*
   * 多种方式读取文件内容
   * 一、按字节读取文件内容
   * 二、按字符读取文件内容
   * 三、按行读取文件内容
   * 四、随机读取文件内容
   */windows

   //一、按字节读取文件内容dom

    /**
    *
    * 以字节为单位读取文件,经常使用于读二进制文件,如图片、声音、影像等文件
    * @param fileName 文件名
    * @return void
    */
    public  static void readFileByBytes(String fileName){
        File file = new File(fileName);
        InputStream in = null;
        try {
            System.out.println("以字节为单位读取文件内容,一次读一个字节");
            in = new FileInputStream(file);
            int tempByte;
            while ((tempByte=in.read())!=-1){
                System.out.print(tempByte+"segment");
            }
            in.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }jsp

    //二、按字符读取文件内容.net

    /**
    *
    * 以字符为单位读取文件,经常使用于读文本,数字等类型的文件
    * @param fileName 文件名
    * @return void
    */
    public  static void readFileByChars(String fileName){
        File file = new File(fileName);
        Reader reader = null;
        try {
            System.out.println("以字符为单位读取文件内容,一次读一个字节");
            reader = new InputStreamReader(new FileInputStream(file));
            int tempChar;
            while ((tempChar=reader.read())!=-1){
                //对于windows下,rn这两个字符在一块儿时,表示一次换行,如两个字符分开时,表示两次换行
                if((char)tempChar!='r'){
                System.out.print((char)tempChar);
                }
            }
            reader.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }图片


    //三、按行读取文件内容get

    /**
    *
    * 以行为单位读取文件,经常使用于读面向行的格式化文件
    * @param fileName 文件名
    * @return void
    */
    public  static void readFileByLines(String fileName){
        File file = new File(fileName);
        BufferedReader reader = null;
        try {
            System.out.println("以行为单位读取文件内容,一次读一整行:");
            reader = new BufferedReader(new FileReader(file));
            String tempString = null;
            int line=1;
            while ((tempString=reader.readLine())!=null){
                    System.out.println("line"+line+":"+tempString);
                     line++;
            }
            reader.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }it

    //四、随机读取文件内容io

    /**
    *
    * @param fileName 文件名
    * @return void
    */
    public  static void readFileByRandomAccess(String fileName){
        RandomAccessFile randomAccessFile = null;
        try {
            System.out.println("随机读取一段文件内容:");
            //打开一个随机访问文件流,按只读方式
            randomAccessFile = new RandomAccessFile(fileName,"r");
            //文件长度,字节数
            long fileLength = randomAccessFile.length();
            //将读文件的开始位置
            int beginIndex = (fileLength>4)?4:0;
            //将读文件的开始位置移到beginIndex位置
            randomAccessFile.seek(beginIndex);
            byte[] bytes =  new byte[10];
            int  byteRead = 0;
            //一次读10个字节,若是文件内容不足10个字节,则读剩下的字节。
            while ((byteRead = randomAccessFile.read(bytes))!=-1){
                System.out.write(bytes,0,byteRead);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (randomAccessFile!=null){
               try {
                   randomAccessFile.close();
               }catch (Exception e){
                   e.printStackTrace();
               }class

            }
        }
    }

    public static void main(String[] args){
//        readFileByBytes(IMAGEPATH);
//        readFileByChars(DEPATH);
//        readFileByLines(DEPATH);
        readFileByRandomAccess(DEPATH);
    }

}

注:仅供分享,内容参照其余学者

相关文章
相关标签/搜索