- 浏览: 180766 次
- 性别:
- 来自: 北京
最新评论
-
UP-GIS:
请问博主解决了这个问题没。
vualSVN 服务器端自动更新 post-commit.bat -
输入法:
参考这篇文章http://robbin.iteye.com/b ...
iteye 网站用什么语言开发的? -
rancococ:
同情你哦。
今年奖金不发了? -
ywlqi:
同样是在外打工,一年回家一次,按这么算,也许见父母的机会不到5 ...
如果假设成立,只能再见父母50次 -
sunloveny:
生日快乐
生日快乐
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 {
/**
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
*/
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 = "I:/test/g127-s545.TXT";
// ReadFromFile.readFileByBytes(fileName);
// ReadFromFile.readFileByChars(fileName);
//ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}
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 {
/**
* 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
*/
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 = "I:/test/g127-s545.TXT";
// ReadFromFile.readFileByBytes(fileName);
// ReadFromFile.readFileByChars(fileName);
//ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}
发表评论
-
遍历Map 集合的4种方式
2016-05-17 18:09 556package com.study.lesson7; ... -
word中字体大小(pt)和网页中css设置font-size时用的px大小对应关系
2015-05-11 15:46 2654word中字体大小(pt)和网页中css设置font-size ... -
js select
2014-11-27 14:24 8581、获取选中select的value和text,html代码如 ... -
自适应改变iframe 的高度
2013-04-10 18:07 927自适应改变iframe 的高度 //iframe 的内容页面 ... -
终端服务器超出了最大允许连接数
2013-03-20 13:35 837问题:登录到win2003服务器时老出现:"终端服务 ... -
another app is currently holding the yum lock;waiting for it to exit
2013-01-27 13:04 984another app is currently holdi ... -
oracle tablespace intance users 的关系图
2011-11-01 16:31 866oracle SID intance service 的关 ... -
待研究的技术
2011-09-29 08:59 7391、地图研究。在地图能标示想要查找的东西。GOOGLE 、ba ... -
怎么得到一个图片的颜色代码
2010-07-01 16:43 977http://www.cssdrive.com/imagepa ... -
liunx 学习笔记
2010-03-06 11:15 8531.查找 并删除目录文件 find / -name '*.文 ... -
远程控制服务器失败
2009-11-15 18:19 1276在局域网工作环境中, ... -
数据结构
2009-10-04 07:18 1667一直认为《数据结构》这本书,真的很不错。里面不单单有一些处理数 ... -
sql2005 的自动备份
2009-07-04 18:43 1625SQL2005自动备份数据库 一。SqlServer自动作业备 ... -
本地链接不见了的解决方法
2009-02-13 10:12 1047右击---》我的电脑---》管理----》服务和应用程序--- ... -
浅谈内存、32位与64位系统的羁绊
2009-01-10 10:20 1979当我们买电脑时,是选择32位Vista还是尝试一下64位Vis ... -
word 打开慢解决办法
2008-11-29 18:22 4516今天遇到有人问我WORD 打开慢的问题,让我过去给他看看,一开 ... -
word 转换成PDF
2008-11-28 15:40 1110以前在工作中遇到过 把word 转化成 pdf 格式的东西,但 ... -
replace(str,aa,'xx') 方法
2008-10-16 09:45 945sql 中 ,用什么方法可以代替 replace(str,aa ... -
最近重新温习一下java
2008-07-20 10:47 1043最近想重新温习一下JAVA基本知识,包括JSP方面的。大家给推 ... -
要做的
2008-05-28 20:20 0首先,Java常用包、类的使用要会 如:lang包 util包 ...
相关推荐
在这个例子中,我们首先创建一个`File`对象,然后使用`FileReader`打开这个文件。`BufferedReader`通过`FileReader`创建,增加了一个缓冲区,提高了读取效率。`readLine()`方法被用来逐行读取文件内容,直到文件结束...
在Java编程语言中,文件操作是一项基础且至关重要的任务,涉及到读取、写入、创建、删除、重命名等操作。`java.io.File`类是Java标准库中的核心类,用于处理磁盘上的文件和目录。这个类不仅提供了对文件的基本操作,...
`mpxj`是一个开源的Java库,专门用于读取和写入Microsoft Project文件,包括MPP格式。这个库提供了丰富的API,使得开发者可以在Java应用中方便地操作这些项目管理文件。 首先,让我们详细了解一下如何在Java中使用`...
jxl是一个流行的、免费的Java库,用于读取和写入Microsoft Excel格式的文件。在这个简单的例子中,我们将探讨如何使用jxl.jar来读取Excel数据,这对于初学者来说是一个很好的起点。 首先,你需要将jxl.jar添加到你...
这个例子展示了如何使用Java和JSP(JavaServer Pages)技术来创建一个简单的文件下载服务。以下是对给定代码的详细解释: 1. **字符编码转换**: 在处理中文文件名时,需要考虑字符编码的问题。在`toUtf8String()`...
在Java编程环境中,创建和读取PDF文档是常见的任务,特别是在处理报告、发票或文档自动化时。PDF(Portable Document Format)是一种广泛使用的文件格式,它能够保持文档的原始布局和格式,无论在哪种设备上查看。...
在Java编程中,读取和处理文档是常见的需求,尤其是doc、docx和txt格式的文件,这些都是办公环境中广泛使用的文本文件格式。本示例主要介绍如何使用Java的Apache POI库来处理Microsoft Office的doc和docx文件,以及...
在Java编程环境中,读取Windows共享文件夹的内容并将其保存到本地是一项常见的任务,尤其在分布式系统或跨平台协作中。下面将详细讲解如何通过Java实现这一功能,以及涉及的相关知识点。 首先,Java中没有内置的...
总的来说,Java的`File`类提供了丰富的文件和目录操作接口,使得开发者能够方便地进行文件的创建、读写、复制和删除等操作。结合`FileUtils`这样的辅助工具类,我们可以编写出更简洁、易维护的代码。在实际开发中,...
总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。
本篇文章将深入探讨如何使用Java实现Excel文件的上传和读取,重点关注`MultiFile`转换为`File`以及处理多Sheet页的技巧。 首先,我们需要了解Java中处理Excel的库。Apache POI是一个广泛使用的开源库,它提供了API...
根据提供的文件信息,我们可以总结出以下关于Java读取TXT文档的知识点: ### 一、导入必要的包 在Java中读取文件之前,首先需要导入一些必要的包,这些包提供了处理文件的基本工具。在这个例子中,涉及到的包有: ...
在这个“一个文件的读写例子”中,我们将深入探讨如何在Python中实现这一功能,因为Python的File IO操作简洁易懂。 1. **打开文件**:首先,我们需要使用内置的`open()`函数打开文件。这个函数接受两个参数:文件名...
Java的Zip压缩和解压是Java IO和Java Archive(JAR)库中的一部分,用于处理.zip格式的文件。在Java中,我们可以使用`java.util.zip`包中的类,如`ZipOutputStream`和`ZipInputStream`来实现文件或目录的压缩与解压...
在本教程中,我们将深入探讨"flink-java-本地例子"这一主题,它涉及Apache Flink的Java API以及如何在本地环境中运行Flink程序。Apache Flink是一个强大的开源流处理和批处理框架,广泛用于实时数据处理。我们将讨论...
在这个例子中,我们打开文件,然后读取并写入到响应的输出流中。注意处理好异常,确保在出现错误时能够优雅地关闭资源。 除了直接从服务器磁盘提供文件下载,还可以将文件存储在数据库中或者使用云存储服务。在这种...
6. **文件和输入/输出**:Java提供了丰富的I/O流类库,用于读写文件、网络通信和其他数据源。例如,File类用于文件操作,InputStream和OutputStream用于字节流处理,而Reader和Writer则处理字符流。 7. **集合框架*...
在Java编程环境中,文件传输是一项常见的任务,尤其是在网络...在`Java_file_send`这个例子中,我们可以学习到如何将这些概念应用于实际的代码实现。不过,具体代码细节和实现方式,需要解压压缩包并查看源码才能得知。
在文件I/O操作上,Java提供了丰富的API,如File类、InputStream/OutputStream流和Reader/Writer类。你可以通过这些示例了解如何读写文件、复制文件或处理目录。 线程是Java的一个重要特性,让你能够编写并发程序。...
在Java编程语言的世界里,掌握一系列经典例子是提升技能的关键步骤。"100个Java经典例子"这个资源集合提供了一条深入理解Java语言的有效途径,尤其适合初学者。通过这些例子,你可以从基础到进阶,逐步了解并熟练...