Java 如何读取目录下的文件内容

Java 如何读取目录下的文件内容,第1张

  Java读取目录下的文件内容,使用的是java的文件类,示例如下:

import javaioBufferedReader;

import javaioFile;

import javaioFileInputStream;

import javaioFileReader;

import javaioIOException;

import javaioInputStream;

import javaioInputStreamReader;

import javaioRandomAccessFile;

import javaioReader;

 

public class ReadFromFile {

    /

      以字节为单位读取文件,常用于读二进制文件,如、声音、影像等文件。

      

      @param fileName

                 文件的名

     /

    public static void readFileByBytes(String fileName) {

        File file = new File(fileName);

        InputStream in = null;

        try {

            Systemoutprintln("以字节为单位读取文件内容,一次读一个字节:");

            // 一次读一个字节

            in = new FileInputStream(file);

            int tempbyte;

            while ((tempbyte = inread()) != -1) {

                Systemoutwrite(tempbyte);

            }

            inclose();

        } catch (IOException e) {

            eprintStackTrace();

            return;

        }

        try {

            Systemoutprintln("以字节为单位读取文件内容,一次读多个字节:");

            // 一次读多个字节

            byte[] tempbytes = new byte[100];

            int byteread = 0;

            in = new FileInputStream(fileName);

            ReadFromFileshowAvailableBytes(in);

            // 读入多个字节到字节数组中,byteread为一次读入的字节数

            while ((byteread = inread(tempbytes)) != -1) {

                Systemoutwrite(tempbytes, 0, byteread);

            }

        } catch (Exception e1) {

            e1printStackTrace();

        } finally {

            if (in != null) {

                try {

                    inclose();

                } catch (IOException e1) {

                }

            }

        }

    }

 

    /

      以字符为单位读取文件,常用于读文本,数字等类型的文件

      

      @param fileName

                 文件名

     /

    public static void readFileByChars(String fileName) {

        File file = new File(fileName);

        Reader reader = null;

        try {

            Systemoutprintln("以字符为单位读取文件内容,一次读一个字节:");

            // 一次读一个字符

            reader = new InputStreamReader(new FileInputStream(file));

            int tempchar;

            while ((tempchar = readerread()) != -1) {

                // 对于windows下,\r\n这两个字符在一起时,表示一个换行。

                // 但如果这两个字符分开显示时,会换两次行。

                // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。

                if (((char) tempchar) != '\r') {

                    Systemoutprint((char) tempchar);

                }

            }

            readerclose();

        } catch (Exception e) {

            eprintStackTrace();

        }

        try {

            Systemoutprintln("以字符为单位读取文件内容,一次读多个字节:");

            // 一次读多个字符

            char[] tempchars = new char[30];

            int charread = 0;

            reader = new InputStreamReader(new FileInputStream(fileName));

            // 读入多个字符到字符数组中,charread为一次读取字符数

            while ((charread = readerread(tempchars)) != -1) {

                // 同样屏蔽掉\r不显示

                if ((charread == tempcharslength)

                        && (tempchars[tempcharslength - 1] != '\r')) {

                    Systemoutprint(tempchars);

                } else {

                    for (int i = 0; i < charread; i++) {

                        if (tempchars[i] == '\r') {

                            continue;

                        } else {

                            Systemoutprint(tempchars[i]);

                        }

                    }

                }

            }

 

        } catch (Exception e1) {

            e1printStackTrace();

        } finally {

            if (reader != null) {

                try {

                    readerclose();

                } catch (IOException e1) {

                }

            }

        }

    }

 

    /

      以行为单位读取文件,常用于读面向行的格式化文件

      

      @param fileName

                 文件名

     /

    public static void readFileByLines(String fileName) {

        File file = new File(fileName);

        BufferedReader reader = null;

        try {

            Systemoutprintln("以行为单位读取文件内容,一次读一整行:");

            reader = new BufferedReader(new FileReader(file));

            String tempString = null;

            int line = 1;

            // 一次读入一行,直到读入null为文件结束

            while ((tempString = readerreadLine()) != null) {

                // 显示行号

                Systemoutprintln("line " + line + ": " + tempString);

                line++;

            }

            readerclose();

        } catch (IOException e) {

            eprintStackTrace();

        } finally {

            if (reader != null) {

                try {

                    readerclose();

                } catch (IOException e1) {

                }

            }

        }

    }

 

    /

      随机读取文件内容

      

      @param fileName

                 文件名

     /

    public static void readFileByRandomAccess(String fileName) {

        RandomAccessFile randomFile = null;

        try {

            Systemoutprintln("随机读取一段文件内容:");

            // 打开一个随机访问文件流,按只读方式

            randomFile = new RandomAccessFile(fileName, "r");

            // 文件长度,字节数

            long fileLength = randomFilelength();

            // 读文件的起始位置

            int beginIndex = (fileLength > 4)  4 : 0;

            // 将读文件的开始位置移到beginIndex位置。

            randomFileseek(beginIndex);

            byte[] bytes = new byte[10];

            int byteread = 0;

            // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。

            // 将一次读取的字节数赋给byteread

            while ((byteread = randomFileread(bytes)) != -1) {

                Systemoutwrite(bytes, 0, byteread);

            }

        } catch (IOException e) {

            eprintStackTrace();

        } finally {

            if (randomFile != null) {

                try {

                    randomFileclose();

                } catch (IOException e1) {

                }

            }

        }

    }

 

    /

      显示输入流中还剩的字节数

      

      @param in

     /

    private static void showAvailableBytes(InputStream in) {

        try {

            Systemoutprintln("当前字节输入流中的字节数为:" + inavailable());

        } catch (IOException e) {

            eprintStackTrace();

        }

    }

 

    public static void main(String[] args) {

        String fileName = "C:/temp/newTemptxt";

        ReadFromFilereadFileByBytes(fileName);

        ReadFromFilereadFileByChars(fileName);

        ReadFromFilereadFileByLines(fileName);

        ReadFromFilereadFileByRandomAccess(fileName);

    }

}

foswrite(byte

[],int

,int

)

这个函数应该是这个样子的

第一个参数表示你要写的字节数组

变量

第二个参数表示你要从这个字节数组的第几个字节开始写

第三个参数表示你总共要写多少个字节

foswrite(b,0,slength()/2);

很明显就是你要写

字节数组b,从下表0开始写

length()/2个字节

foswrite(b,slength()/2,0);

从0开始写,写0个

,所以什么都没有

File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和 *** 作方法。File类的常用方法如下表:

返回

方法

说明

String getName 获取文件名称

String getParent 获取文件的父路径字符串

String getPath 获取文件的相对路径字符串

String getAbsolutePath 获取文件的绝对路径字符串

boolean exists 判断文件或者文件夹是否存在

boolean isFile 判断是不是文件类型

boolean isDirectory 判断是不是文件夹类型

boolean delete 删除文件或文件夹,如果删除成功返回结果为true

boolean mkdir 创建文件夹,创建成功返回true

boolean setReadOnly 设置文件或文件夹的只读属性

long length 获取文件的长度

long lastModified 获取文件的最后修改时间

String[ ] list 获取文件夹中的文件和子文件夹的名称,并存放到字符串数组中

以上就是关于Java 如何读取目录下的文件内容全部的内容,包括:Java 如何读取目录下的文件内容、java怎样判断文件长度计算完成、java如何获取文件信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9830375.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存