`

读取文件方法大全

    博客分类:
  • java
阅读更多

public class ReadFromFile { 
    /** 
     * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 
     */ 
    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.write(tempbyte); 
            } 
            in.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
            return; 
        } 
        try { 
            System.out.println("以字节为单位读取文件内容,一次读多个字节:"); 
            // 一次读多个字节 
            byte[] tempbytes = new byte[100]; 
            int byteread = 0; 
            in = new FileInputStream(fileName); 
            ReadFromFile.showAvailableBytes(in); 
            // 读入多个字节到字节数组中,byteread为一次读入的字节数 
            while ((byteread = in.read(tempbytes)) != -1) { 
                System.out.write(tempbytes, 0, byteread); 
            } 
        } catch (Exception e1) { 
            e1.printStackTrace(); 
        } finally { 
            if (in != null) { 
                try { 
                    in.close(); 
                } catch (IOException e1) { 
                } 
            } 
        } 
    } 

    /** 
     * 以字符为单位读取文件,常用于读文本,数字等类型的文件 
     */ 
    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下,\r\n这两个字符在一起时,表示一个换行。 
                // 但如果这两个字符分开显示时,会换两次行。 
                // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。 
                if (((char) tempchar) != '\r') { 
                    System.out.print((char) tempchar); 
                } 
            } 
            reader.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        try { 
            System.out.println("以字符为单位读取文件内容,一次读多个字节:"); 
            // 一次读多个字符 
            char[] tempchars = new char[30]; 
            int charread = 0; 
            reader = new InputStreamReader(new FileInputStream(fileName)); 
            // 读入多个字符到字符数组中,charread为一次读取字符数 
            while ((charread = reader.read(tempchars)) != -1) { 
                // 同样屏蔽掉\r不显示 
                if ((charread == tempchars.length) 
                        && (tempchars[tempchars.length - 1] != '\r')) { 
                    System.out.print(tempchars); 
                } else { 
                    for (int i = 0; i < charread; i++) { 
                        if (tempchars[i] == '\r') { 
                            continue; 
                        } else { 
                            System.out.print(tempchars[i]); 
                        } 
                    } 
                } 
            } 

        } catch (Exception e1) { 
            e1.printStackTrace(); 
        } finally { 
            if (reader != null) { 
                try { 
                    reader.close(); 
                } catch (IOException e1) { 
                } 
            } 
        } 
    } 

    /** 
     * 以行为单位读取文件,常用于读面向行的格式化文件 
     */ 
    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; 
            // 一次读入一行,直到读入null为文件结束 
            while ((tempString = reader.readLine()) != null) { 
                // 显示行号 
                System.out.println("line " + line + ": " + tempString); 
                line++; 
            } 
            reader.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } finally { 
            if (reader != null) { 
                try { 
                    reader.close(); 
                } catch (IOException e1) { 
                } 
            } 
        } 
    } 

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

    /** 
     * 显示输入流中还剩的字节数 
     */ 
    private static void showAvailableBytes(InputStream in) { 
        try { 
            System.out.println("当前字节输入流中的字节数为:" + in.available()); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 

    public static void main(String[] args) { 
        String fileName = "C:/temp/newTemp.txt"; 
        ReadFromFile.readFileByBytes(fileName); 
        ReadFromFile.readFileByChars(fileName); 
        ReadFromFile.readFileByLines(fileName); 
        ReadFromFile.readFileByRandomAccess(fileName); 
    } 
} 
 
分享到:
评论

相关推荐

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

    Java读取文件方法大全.pdf

    Java读取文件方法大全.pdf

    Java读取文件方法大全

    首先,Java中最基础的文件读取方式是通过`java.io.File`类来创建文件对象,然后使用`java.io.FileInputStream`或`java.io.FileOutputStream`来读写文件。在这个例子中,`ReadFromFile`类中包含两种读取文件的方法:...

    Python读写文件方法读取各种类型文件

    ### Python读写文件方法读取各种类型文件 #### 一、概述 在Python编程中,对文件的操作是一项基本且重要的技能。无论是简单的文本文件还是复杂的二进制文件,Python都提供了丰富的工具和方法来帮助开发者高效地...

    读写文件读取文件操作读取文件操作读取文件操作读取文件操作

    在IT领域,文件读写是基础且至关重要的操作,它涉及到程序与数据的交互,无论是存储用户输入,保存程序状态,还是处理数据,都离不开文件的读取和写入。以下将详细介绍关于“读取文件操作”的核心知识点,并结合可能...

    Java读取文件方法集锦(经典小程序)

    [Java]读取文件方法大全 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容

    VC实现读写文件的三种方法

    下面将详细讲解标题中提到的三种在VC++中实现读写文件的方法。 1. Linux下文件句柄方式 在Linux系统中,文件操作主要通过文件描述符(file descriptor)来完成,它是一个非负整数,表示一个打开的文件。在C或C++中...

    C# 读取 文件 方法

    除了`FileStream`之外,`StreamReader`和`StreamWriter`也是读写文件非常方便的工具。它们提供了更高级别的抽象层,使得文本文件的操作更加简单。 ```csharp using System; using System.Collections.Generic; ...

    codesys读写CVS文件(亲测)

    另外需要读取txt文件的关注本人往期的文章,有讲解。资源内部包含工程文件以及CVS文件。 如果是打开工程的界面不显示,可能是codesys的版本过低,需要更新版本。可以参见博客文章:codesys工程ST语言学习笔记(六)...

    Linux内核中读写文件数据的方法

    在Linux内核编程中,有时候需要直接在内核空间中读写文件,这通常发生在调试驱动程序时。由于内核环境中没有标准C库的支持,必须使用内核提供的特定函数来实现这一目标。以下是对主要涉及的函数的详细解释: 1. **...

    java 按顺序读取文件

    在上述代码中,`BufferedReader`的`readLine()`方法用于按顺序读取文件内容,直到文件末尾。如果文件内容较多,使用缓冲可以显著提高读取速度,因为数据会一次性读入内存,而不是每次读取一个字符。 除了`...

    用ibaFiles组件读写iba实时数据文件的方法

    要读取iba实时数据文件中的频道及其数据信息,需要按照以下步骤进行操作:首先创建一个IbaFileClass的实例对象,然后使用Open方法打开目标数据文件,之后通过EnumChannels方法枚举出所有的频道,对每一个频道,可以...

    Android读写配置文件

    在Android开发中,读写配置文件是常见的任务,主要用于存储应用程序的设置、用户偏好或者其他持久化数据。配置文件通常以XML或JSON格式存在,因为它们结构清晰,易于解析。本实例将详细介绍如何在Android中进行读取...

    Python实现读取Properties配置文件的方法

    在上述代码中,`getProperties`方法逐行读取文件,如果某行包含等号,说明它是一个有效的键值对。去除换行符后,用`split('=')`将键和值分开,并存入字典。注意处理异常,如果在打开或读取文件过程中出现错误,会抛...

    pb下读写xml文件的例子.rar_pb_pb 读取xml_pb 读取xml文件_pb9 xml_pb下读写xml文件的例子

    本示例主要探讨如何在PowerBuilder 9(PB9)中进行XML文件的读取和写入操作。 首先,我们需要了解PowerBuilder中的XML支持。PB9引入了对XML的支持,包括XMLDocument对象和DOM解析器,使得开发者能够方便地与XML数据...

    java 读取文件 文件读取操作

    本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取文件内容** Java中`java.io.FileInputStream`类提供了按字节读取文件的功能。这种方法适用于读取二...

    C#读取BIN文件内容

    在处理特定类型的二进制文件,如BIN文件时,C#提供了丰富的库和方法来读取和操作这些文件。BIN文件通常包含原始二进制数据,可能来自固件更新、程序执行代码或者数据存储。下面我们将详细讨论如何在C#中读取BIN文件...

    易语言大文件读写模块

    通常,初始化可能涉及打开文件、检查文件是否存在、设置读写模式(读取或写入)等步骤。 “取总行数”功能允许开发者获取文件中的总行数,这对于数据统计或分析非常有用。实现这一功能通常需要遍历文件,但为了避免...

Global site tag (gtag.js) - Google Analytics