`

java中读取文件的方式

    博客分类:
  • J2SE
阅读更多
一、多种方式读文件内容。

1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
public class ReadFromFile ...{
/** *//**
   * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
   * @param fileName 文件的名
   */
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) ...{
     }
    }
   }
}
/** *//**
   * 以字符为单位读取文件,常用于读文本,数字等类型的文件
   * @param fileName 文件名
   */
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下,这两个字符在一起时,表示一个换行。
     //但如果这两个字符分开显示时,会换两次行。
     //因此,屏蔽掉,或者屏蔽。否则,将会多出很多空行。
     if (((char)tempchar) != ' ')...{
      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)...{
     //同样屏蔽掉不显示
     if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != ' '))...{
      System.out.print(tempchars);
     }else...{
      for (int i=0; i<charread; i++)...{
       if(tempchars[i] == ' ')...{
        continue;
       }else...{
        System.out.print(tempchars[i]);
       }
      }
     }
    }
  
   } catch (Exception e1) ...{
    e1.printStackTrace();
   }finally ...{
    if (reader != null)...{
     try ...{
      reader.close();
     } catch (IOException e1) ...{
     }
    }
   }
}
/** *//**
   * 以行为单位读取文件,常用于读面向行的格式化文件
   * @param fileName 文件名
   */
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) ...{
     }
    }
   }
}
/** *//**
   * 随机读取文件内容
   * @param fileName 文件名
   */
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) ...{
     }
    }
   }
}
/** *//**
   * 显示输入流中还剩的字节数
   * @param in
   */
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);
}
}

二、将内容追加到文件尾部

import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;

/** *//**
* 将内容追加到文件尾部
*/
public class AppendToFile ...{

/** *//**
   * A方法追加文件:使用RandomAccessFile
   * @param fileName 文件名
   * @param content 追加的内容
   */
public static void appendMethodA(String fileName, String content)...{
   try ...{
    // 打开一个随机访问文件流,按读写方式
    RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
    // 文件长度,字节数
    long fileLength = randomFile.length();
    //将写文件指针移到文件尾。
    randomFile.seek(fileLength);
    randomFile.writeBytes(content);
    randomFile.close();
   } catch (IOException e)...{
    e.printStackTrace();
   }
}
/** *//**
   * B方法追加文件:使用FileWriter
   * @param fileName
   * @param content
   */
public static void appendMethodB(String fileName, String content)...{
   try ...{
    //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
    FileWriter writer = new FileWriter(fileName, true);
    writer.write(content);
    writer.close();
   } catch (IOException e) ...{
    e.printStackTrace();
   }
}

public static void main(String[] args) ...{
   String fileName = "C:/temp/newTemp.txt";
   String content = "new append!";
   //按方法A追加文件
   AppendToFile.appendMethodA(fileName, content);
   AppendToFile.appendMethodA(fileName, "append end.  ");
   //显示文件内容
   ReadFromFile.readFileByLines(fileName);
   //按方法B追加文件
   AppendToFile.appendMethodB(fileName, content);
   AppendToFile.appendMethodB(fileName, "append end.  ");
   //显示文件内容
   ReadFromFile.readFileByLines(fileName);
}
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ovsynnia/archive/2008/05/01/2357544.aspx
分享到:
评论

相关推荐

    java 按顺序读取文件

    在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...

    java如何读取文件

    本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...

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

    解决Java读取CSV文件中文乱码问题的步骤如下: 1. **指定字符编码**:在使用`BufferedReader`或者`FileReader`读取文件时,应明确指定编码。例如,使用`InputStreamReader`构造函数可以传入编码类型,如`new ...

    java读取文件方法大全

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

    java 读取文件 文件读取操作

    在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...

    JAVA实现远程文件读取

    JAVA实现远程文件读取 JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持远程文件读取的功能,本文将详细介绍JAVA实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket...

    用java读取ini文件(支持中文)

    在Java编程环境中,读取INI配置文件是一项常见的任务,这些文件通常用于存储应用程序的设置或配置参数。由于INI文件格式简单且易于理解,因此在许多系统中被广泛使用。本篇我们将深入探讨如何使用Java有效地读取包含...

    详解Java无需解压直接读取Zip文件和文件内容

    读取Zip文件中的文件内容是Java读取Zip文件和文件内容的核心部分。我们可以使用BufferedReader类来读取文件内容。首先,我们需要获取Zip文件中的每个Entry,然后使用ZipFile类的getInputStream()方法获取该Entry的...

    Java读取大文件的处理

    Java读取大文件的处理是Java编程中的一项重要技术,特别是在处理大文件时需要注意性能和响应速度。下面我们将对Java读取大文件的处理技术进行详细的介绍。 标题解释 Java读取大文件的处理是指使用Java语言来读取大...

    java中读取目录下指定的文件

    在Java编程语言中,读取目录下指定的文件是一项常见的任务,这主要涉及到文件I/O操作。Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现...

    java读取mpp文件

    如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;net.sourceforge.mpxj&lt;/groupId&gt; &lt;artifactId&gt;mpxj 最新版本号 ``` 确保替换“最新版本号”为当前的`mpxj`库的最新稳定版本。 接...

    java中读取shp文件数据存入数据库

    shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形...该方法通过java代码实现将shp文件的数据读取以及存入数据库

    Java读取TIFF文件

    在IT行业中,图像处理是不可或缺的一部分,特别是在...总的来说,Java通过第三方库如Apache Commons Imaging,提供了读取和处理TIFF文件的能力,这使得开发者能够在Java应用程序中灵活地处理这种专业级别的图像格式。

    java读取局域网共享机器文件

    要实现Java读取局域网共享文件,主要涉及以下步骤和知识点: 1. **网络路径表示**:Java中,网络路径通常以UNC(Universal Naming Convention)格式表示,形如`\\hostname\shared_directory\file.txt`。这里`...

    java读取本地.db文件实例

    你可以通过Maven或Gradle将依赖添加到项目中,如在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.xerial &lt;artifactId&gt;sqlite-jdbc &lt;version&gt;3.36.0.3 ``` 接下来,我们需要创建一个JDBC连接来访问...

    java 读取远程文件目录 及文件方式

    本文件是将 Java 中 通过远程url访问 转换成 HTML 文件 ,通过 dom4j转换成Java对象元素

    java读取*.mdb文件数据

    在提供的"示例代码.txt"文件中,可能包含了一个使用UCanAccess进行分页读取的Java代码示例。这个示例可能包括了建立连接、设置分页参数、执行查询、处理结果集以及关闭资源的过程。打开这个文件,按照示例代码一步步...

    java 二进制文件的读写操作

    它是从文件系统的一个文件中获得输入字节的方便方法。 2. **FileOutputStream**:用于写入原始字节流的输出流。它提供了向文件系统的一个文件写入字节的便利方法。 3. **BufferedInputStream** 和 **DataInputStream...

Global site tag (gtag.js) - Google Analytics