- 浏览: 248594 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
moxia:
softor 写道这是我格式化的代码:
<div id= ...
addEventListener 和attachEvent用法 -
softor:
这是我格式化的代码:
<div id="div ...
addEventListener 和attachEvent用法 -
softor:
你第一段实例里有连个事件监听,你说的“如果userCaptur ...
addEventListener 和attachEvent用法 -
tvmovie:
([\s\S]*) 非常需要,谢谢博主。
关于正则表达式匹配任意字符(包括换行符)的写法 -
zhongxinhu:
昨晚搞了一晚上,很郁闷,也是这个问题
关于正则表达式匹配任意字符(包括换行符)的写法
[Java]读取文件方法大全
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->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);
}
}
/**
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
*/
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);
}
}
5、将内容追加到文件尾部
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->public
class
AppendToFile {
/**
* A方法追加文件:使用RandomAccessFile
*/
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
*/
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. \n " );
// 显示文件内容
ReadFromFile.readFileByLines(fileName);
// 按方法B追加文件
AppendToFile.appendMethodB(fileName, content);
AppendToFile.appendMethodB(fileName, " append end. \n " );
// 显示文件内容
ReadFromFile.readFileByLines(fileName);
}
}
/**
* A方法追加文件:使用RandomAccessFile
*/
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
*/
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. \n " );
// 显示文件内容
ReadFromFile.readFileByLines(fileName);
// 按方法B追加文件
AppendToFile.appendMethodB(fileName, content);
AppendToFile.appendMethodB(fileName, " append end. \n " );
// 显示文件内容
ReadFromFile.readFileByLines(fileName);
}
}
发表评论
-
spring如何使用多个xml配置文件 【转】
2010-10-26 16:54 16161, 在web.xml中定义 contextConfigLoc ... -
如何指定tomcat中session过期时间
2010-10-11 02:06 1124如何指定tomcat中session过期时间 1. ... -
获取参数日期的上月月末日期及下月月初日期
2010-09-30 10:32 1973public static String getNewDate ... -
eclipse启动参数配置简介
2010-08-04 07:26 2714eclipse.ini内存设置(转 ... -
java 读取纯真IP数据库QQwry.dat的源代码(转)
2010-02-23 15:07 6017java读取纯真IP数据库QQwry.dat的源代码,要 ... -
java实现URL重写的三种方法
2009-11-03 04:38 1460java实现URL重写的三种方法 ... -
log4j相对路径
2009-10-28 16:42 953log4j相对路径 方法一: 在工程s ... -
iBATIS学习笔记
2009-09-16 10:59 7591 ibatis中resultClass对应的对象必须为POJ ... -
ibatis 组合键问题
2009-09-15 17:33 954用ibatis做组合键查询的时候 ,一直提示column {i ... -
ibatis 缓存机制初探(转)
2009-09-14 16:20 1537一,IBATIS 缓存机制使用 1,s ... -
ibatis 缓存配置 相关参数说明和性能比较
2009-09-14 16:11 18821 SqlMapConfig.xml文档中参数配置 [s ... -
生成JDK 自带的工具创建密匙库和信任库的批处理命令
2009-08-12 10:14 1562批处理命令如下: keytool -genke ... -
java 和javaw 的区别
2009-08-04 15:16 11873javaw.exe用法和java.exe 相同 javaw的 ... -
Java命令参数说明大全
2009-08-04 14:47 1335序言: Java在运行已编译完成的类时,是通过java虚拟机 ... -
JDK 和 JRE 目录的文件结构
2009-08-04 14:11 3365我 们下载 Java 的安装程序往电脑 ... -
Java安装后JDK/bin目录下的许多exe文件有什么用途
2009-08-04 14:08 1106javac:Java编译器,将Java ... -
JDK 和JRE的区别
2009-08-04 14:05 1041Jre 是java runti ... -
response.getwriter ().write() 乱码
2009-08-03 17:05 4416使用response.getwriter ().write() ... -
JAVA程序运行时提示can't create cache file
2009-08-03 16:34 3023java 程序运行时,提示can't create cache ... -
eclipse3.3+myeclipse6 的VSS插件显示问题
2009-07-28 10:19 1424以前用eclipse3.0 + myeclipse4 和VSS ...
相关推荐
### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...
Java语言在处理文件I/O操作时提供了多种方法,这些方法可以按照不同的策略读取文件,例如按字节或字符进行。下面将详细讲解Java中读取文件的主要方法,并结合给出的代码片段进行分析。 首先,Java中最基础的文件...
### JAVA读取文件方法大全 在Java编程语言中,读取文件是常见且重要的操作之一。根据不同的需求,我们可以选择不同的方式来读取文件。本文将详细介绍四种主要的读取文件的方法:按字节读取文件内容、按字符读取文件...
Java读取文件方法大全.pdf
Java读取文件方法大全[归纳].pdf
### Java读取文件方法概述 在Java中,有多种方式可以用来读取文件的内容。这些方法大致可以分为两类:基于字节流的方法和基于字符流的方法。这两种方法分别适用于不同的场景,具体选择哪一种取决于实际需求。 ####...
Java 读取文件方法大全 Java 读取文件方法大全是 Java 编程语言中用来读取文件内容的多种方法的总结。这些方法可以根据不同的需求和场景来选择使用。下面将对这些方法进行详细的介绍和分析。 1. 按字节读取文件...
Java 文件读取方法大全 Java 中有多种方式来读取文件,每种方式都有其特点和应用场景。本文将详细介绍四种常见的文件读取方法:按字节读取文件内容、按字符读取文件内容、按行读取文件内容和随机读取文件内容。 一...
Java中`java.io.FileInputStream`类提供了按字节读取文件的功能。这种方法适用于读取二进制文件,例如图像、音频或视频文件。下面的代码示例展示了如何按字节读取文件: ```java FileInputStream in = new ...
java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料
[Java]读取文件方法大全 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容
Java读取文件的过程虽然看似简单,但涉及多个细节和潜在的错误处理。通过使用`BufferedReader`和适当的异常管理,可以高效且安全地读取文本文件。此外,还可以考虑使用Java 7引入的`try-with-resources`语句来自动...
本文将深入探讨Java中读取文件的各种方法,包括按字节、字符、行以及随机读取,这些都是Java IO操作的重要组成部分。 首先,我们来看如何按字节读取文件内容。`FileInputStream`类提供了按字节读取文件的功能。在...
"Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...
以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。
2. 使用ProgressMonitorInputStream读取文件:我们使用了ProgressMonitorInputStream来读取大文件,这样可以监控文件的读取进度。 3. 使用多线程技术:我们使用了多线程技术来读取大文件,以提高响应速度。当按钮被...
// 读取文件版本信息 FileVersion fileVersion = reader.getFileVersion(); System.out.println("文件版本: " + fileVersion.getMajor() + "." + fileVersion.getMinor()); // 读取整个项目文件 ProjectFile ...
* 读取文件内容 * 关闭连接 1.2 服务器端编程 在RemoteFileServer类中,我们创建了一个ServerSocket对象,用于监听客户端的连接请求。服务器端编程的主要步骤包括: * 创建ServerSocket对象 * 监听客户端的连接...