`
aijuans
  • 浏览: 1558634 次
社区版块
存档分类
最新评论

java文件读写的两种方式

 
阅读更多

今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码:

复制代码
public static void main(String[] args) throws IOException {
    io();
    buffer();
}

/**
 * 以流的形式读写 可以使用任何文件 特别是二进制文件
 * 
 * @author hh
 * @date 2014-12-11
 * @throws IOException
 */
    public static  void  io() throws IOException {
        String fname = "C:/Users/Administrator/Desktop/T.jar";  
        String fname2 = "C:/Users/Administrator/Desktop/T2.rar";     
        File file = new File(fname);
        File file2 = new File(fname2);
        FileInputStream in = new FileInputStream(file);
        FileOutputStream out = new FileOutputStream(file2);
        byte[] bytes= new byte[2048];
        int k = 0;
        while((k=in.read(bytes))!=-1){
            out.write(bytes);
            /*for (int i = 0; i < bytes.length; i++) {//这样效率很低
                out.write(bytes[i]);
            }*/
        }
        /*或者
         * int b  = 0 ;
        while((b=in.read())!=-1) {            
                out .write(b);  
        } */
        out.close();
        in.close();
        System.out.println("end");
    }
    
    /**
     * 以字符的形式读写 实用文文本文件
     * 不适用与压缩等二进制文件  否者写出来的文件会比源文件大
     * @author hh
     * @date 2014-12-11
     * @throws IOException
     */
  public static void buffer()  throws IOException {
        String fname = "C:/Users/Administrator/Desktop/1234.txt";  
        String fname2 = "C:/Users/Administrator/Desktop/kk.txt";  
        File file = new File(fname); 
        InputStreamReader read = new InputStreamReader(new FileInputStream(file),"GBK");//解决中文乱码 
        //FileReader read =  new FileReader(file);  也可以直接使用FileReader 但是会出想中文乱码
        FileWriter fw = new FileWriter(fname2);
        BufferedReader bufferedReader = new BufferedReader(read);
        BufferedWriter b = new BufferedWriter(fw);
        String s =null;
        while ((s = bufferedReader.readLine()) !=null) { 
            System.out.println(s);
                b.write(s);    
                b.newLine();//换行
                b.flush();
            
        }
        b.close();
        read.close();
        fw.close();
        System.out.println("---end");
  }
复制代码

第一种使用的是FileInputStream和FileOutputStream,这种方式是直接使用io流读数据。不管什么文件可以搞定。但是缺点是没读一次就要进行一次io操作,若是文件大了,销量很低。

第二种使用BufferedReader 和BufferedWrite。与前面的区别是使用了缓存,读取的是字符(FileInputStream是字节)。所以之前在使用BufferedReader BufferedWrite复制一个压缩文件时,复制后的文件总是原文件大小的2倍。

3
1
分享到:
评论

相关推荐

    java文件读写操作大全java文件读写操作大全

    Java 中可以使用多种方式来写文件,下面将介绍两种常用的方法。 1. 使用 PrintStream 写文件 PrintStream 是 Java 中的一个输出流,用于将数据写入到文件中。下面是一个示例代码: ```java public void ...

    java 文件读写

    在这个场景中,我们关注的是“java文件读写”,特别是读取`properties`配置文件和处理目录及文件的操作。下面我们将详细探讨这两个主题。 首先,`properties`配置文件是Java应用中常用的一种存储配置信息的方式。...

    Java 中对文件的读写操作之比较

    - 在进行文件操作时,无论采用哪种方式都需要注意异常处理,例如文件不存在、权限不足等情况。 综上所述,在选择合适的文件读写方式时,应根据具体的应用场景和需求来决定。对于需要处理大量文本数据的情况,推荐...

    JAVA 文件读写操作

    这两种方式适用于二进制数据的读取与写入。 - **InputStream** 作为读取数据的基础类,其派生类 `FileInputStream` 被用来读取文件中的数据。 - **OutputStream** 作为写入数据的基础类,其派生类 `...

    JAVA简单的读写文本文件的代码

    通过上述四个主要部分的分析,我们可以看到Java语言在处理文件读写方面提供了丰富的API支持。使用合适的类库可以极大地简化开发工作并提高程序的性能。例如,使用`StringBuffer`可以有效地处理字符串的动态增长;而`...

    java 文件读写 初步学习

    ### Java文件读写的初步学习 #### 知识点一:Java文件读取 Java提供了多种方式来读取文件,其中`FileInputStream`和`InputStreamReader`是两种常见的用于读取文本文件的方法。在给定的部分内容中,`ReadSettings`...

    java读写hdf5格式文件需要使用的库

    标题提及的“java读写hdf5格式文件需要使用的库”主要包括两个部分:Java接口库和操作系统特定的动态链接库。这里提供的jar文件`hdf5-3.3.2.jar`是Java接口库,它封装了对HDF5文件的操作,使得Java程序员可以通过...

    java的io流文件读写

    Java的IO流是Java平台提供的一种处理输入输出数据的重要机制,尤其在文件读写方面,它扮演着核心角色。对于初学者来说,理解和掌握Java IO流的使用是学习Java编程的基础,也是进阶到更复杂系统开发的关键一步。 ...

    Java文件、文件夹权限修改的两种方法

    Java文件、文件夹权限修改的两种方法 在Java中,文件和文件夹权限的修改是非常重要的,特别是在Linux和Unix系统下。今天,我们将介绍两种修改文件和文件夹权限的方法,即使用File类和NIO方式。 使用File类 File类...

    利用JAVA文件读写流编写的学生点名系统

    本项目“利用JAVA文件读写流编写的学生点名系统”旨在实现一个简单但实用的系统,用于记录和管理学生出勤情况。在大学课程报告中,这种系统可以帮助教师更有效地追踪学生的出席状况。 首先,我们需要了解Java中的...

    JAVA文件读写例题实现过程解析

    "JAVA文件读写例题实现过程解析" JAVA文件读写是Java编程语言中最基本也是最重要的输入/输出机制之一。通过文件读写,程序可以将数据持久化到磁盘中,从而实现数据的长期保存和交换。JAVA文件读写例题实现过程解析...

    JAVA读写二进制文件

    Java提供了两种基本的字节流接口:`InputStream` 和 `OutputStream`。`InputStream` 用于读取数据,而 `OutputStream` 用于写入数据。它们都是抽象类,提供了一些基本的读写方法,如 `read()` 和 `write()`。 2. *...

    一种基于Java注解和反射机制的Excel文件读写操作方法.zip

    综上所述,基于Java注解和反射机制的Excel文件读写操作方法是一种将面向对象的编程理念应用于数据操作的有效方式。通过这种方式,我们能够以声明式的方式定义数据结构与Excel文件格式之间的映射,从而简化了代码,...

    excel文件读写excel文件读写

    1. **文件格式理解**:Excel文件有两种主要格式,`.xls`(老版的BIFF格式)和`.xlsx`(基于Open XML标准)。`.xlsx`文件实际上是一系列XML文档的集合,存储在一个ZIP压缩包内。因此,读写`.xlsx`文件通常涉及到解压...

    C++,java读写二进制文件方法介绍.docx

    * 打开文件有两种方式:使用 `fstream` 类的构造函数或使用 `open` 函数。 * 写文件时,需要使用 `write` 函数,参数为 `(const char * ch, int size)`,需要将要写入文件的变量转换成 `char *` 类型。 * 读文件时,...

    java读写csv文件,中文乱码问题

    4. **处理BOM头**:UTF-8有带BOM和不带BOM两种形式,如果文件开头带有BOM标记,可能需要在读取时进行特殊处理,因为某些库可能不支持带BOM的UTF-8。 5. **使用第三方库**:有一些Java库,如OpenCSV、Apache Commons...

    android文件读写权限

    Android系统提供了两种类型的权限:正常权限和危险权限。 1. 正常权限:这类权限对应用的功能影响较小,系统会在安装时自动授予。例如,访问网络(INTERNET)就是一种正常权限。 2. 危险权限:这类权限涉及用户的...

    深潜数据海洋:Java文件读写全面解析与实战指南

    ### 深潜数据海洋:Java文件读写全面解析与实战指南 #### 第一章:走进文件流的世界 —— 字节与字符的交响 在Java中,文件读写是通过流来实现的,流是一种从源头到目的地的数据传输通道。Java支持两种基本类型的...

    java复制文件的4种方式

    ### Java复制文件的四种方式详解 #### 概述 在Java开发过程中,文件操作是一项基本且重要的任务。其中,文件复制是经常需要用到的功能之一。尽管Java标准库并未直接提供一个简单的方法来复制文件,但开发者可以...

Global site tag (gtag.js) - Google Analytics