- 浏览: 434954 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (145)
- spring (14)
- struts (3)
- hibernate (3)
- ibatis (6)
- web容器 (3)
- java (51)
- 哈希 (1)
- 认证 (1)
- 设计模式 (2)
- 部署_系统 (9)
- hadoop (5)
- shell (5)
- python (2)
- 数据库 (6)
- javascript (3)
- ajax (1)
- servlet (1)
- web前端 (5)
- linux (3)
- ubuntu (5)
- svn (3)
- 报错积累 (1)
- REST (1)
- maven (1)
- josso (2)
- interview (0)
- 其他 (6)
- find . -type f -mmin -10 //10分钟内修改过的 (0)
最新评论
-
cuqing:
下说法有误!如果两个对象的hashCode值相同,我们应该认为 ...
为什么在重写了equals()方法之后也必须重写hashCode()方法 -
Tough小白:
11111111 11111111 11111111 1111 ...
为什么byte取值是-128到127 -
世界尽头没有你:
Cloudera Hadoop5&Hadoop高阶管理 ...
hadoop版本及cloudera的CDH3 CDH4 -
00915132:
感谢楼主~~~~长知识了
java Process的waitFor() -
david8866:
非常感谢楼主的分享,解决了我的问题
java Process的waitFor()
private String readFromFile(String name) { try { File file = new File(name); if (file.isFile()) { StringBuilder sBuilder = new StringBuilder(); InputStream in = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8")); while (br.ready()) { sBuilder.append(br.readLine()); } return sBuilder.toString(); } else return null; } catch (Exception e) { LOG.error("读取文件失败!", e); return null; } }
1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
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); } }
5、将内容追加到文件尾部
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); } }
发表评论
-
多线程_Double Check
2014-12-15 15:45 748http://blog.csdn.net/qq27659271 ... -
继承 静态 代码块 变量 构造函数等执行顺序
2014-02-23 13:24 10111.静态变量和静态代码块和类绑定,类初始化时执行 父 ... -
二进制 八进制 十六进制 无符号整数
2014-02-19 15:23 1881基础 八进制 0开头 十六进制 0x开头 0x ... -
深入理解java虚拟机_笔记1
2014-02-17 14:03 925运行时数据区域: 包 ... -
java断点续传
2014-01-23 10:05 829转自 http://www.ibm.com/dev ... -
java基础1_Class.forName() ClassLoader.loadClass() 和new
2013-08-27 09:29 2105Class.forName()等同与Clas ... -
java基础2_编译期和运行期
2013-08-26 13:58 1529有3个概念: 编译时 运行时 构建时 理解这3个概 ... -
eclipse快捷键
2013-07-03 11:35 827我自己常用的一些快 ... -
java基础_Object
2013-09-09 12:53 750java.lang.Object java.lang ... -
抽象类和接口
2013-06-25 13:22 957抽象类是对象的抽象,然接口是一种行为规范 抽象 ... -
内部类
2013-06-25 12:41 1130第十章 内部类 2013年6月23日 星期日 1 ... -
Callable和Future的简单使用
2013-05-06 13:31 1698import java.util.Random; im ... -
Class.forName 和 ClassLoader.loadClass的区别
2013-03-29 16:54 1287Class.forName("xx.xx&q ... -
java泛型
2013-03-08 13:52 896import java.util.ArrayList; ... -
synchronized关键字总结
2013-03-08 13:24 9531、synchronized关键字的作用域有二种: 1) 是 ... -
为什么在重写了equals()方法之后也必须重写hashCode()方法
2013-03-08 12:54 20233我们都知道Java语言是完全面向对象的,在java中,所有的 ... -
为什么byte取值是-128到127
2012-05-07 09:36 6378建议你baidu下“补码” ... -
static
2012-05-07 09:24 1152public class A{ static in ... -
java Process的waitFor()
2012-04-16 11:05 43867在编写Java程序时,有时候我们需要调用其他的 ... -
log4j
2012-04-09 09:18 1174http://www.iteye.com/topic/3780 ...
相关推荐
### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...
在Java编程中,读写文件是一项基础且重要的任务,...以上就是关于“Java读写文件(txt)”的知识点,包括文件的读取、内容转换、正则匹配以及文件的写入。希望这些内容能帮助你理解和掌握Java在文件操作上的基本技能。
java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料
在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...
根据给定的文件信息,我们将深入探讨Java读写文件文本文件的关键知识点,这些知识点主要集中在文件的读取、写入以及流的复制等操作上。 ### Java读取文本文件 在Java中,读取文本文件通常涉及到使用`InputStream`...
Java读写文件-Excel
Java 读写文件避免中文乱码 Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的...
介绍Java直接读取、带缓冲读取、内存映射读取文件,并详细注释。
在Java编程语言中,读写文件是常见的操作,无论是在Web项目中处理用户上传的文件,还是在系统中保存和加载配置数据,都需要对文件进行读取和写入。本篇将围绕“Java读写文件”这一主题,深入探讨相关的知识点。 ...
以下是对Java读取文件的五种方法的详细说明,每种方法都有相应的代码示例: 1. **按字节读取文件内容** 这种方法适用于读取二进制文件,如图片、音频或视频文件。通过`FileInputStream`类,我们可以一次读取一个...
本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...
- **FileInputStream** 和 **FileOutputStream** 是字节流的子类,专门用于读写文件。它们提供读取和写入文件的基本功能。 4. **字符流**: - **Reader** 和 **Writer** 是字符流的基类,处理字符数据。 - **...
以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。
首先,Java标准库提供了`java.io`包,它包含了一系列用于读写文件的类,如`FileReader`、`FileWriter`等。这些类默认使用平台的默认字符集,这可能导致在不同操作系统上读取同一文件时出现乱码。因此,我们需要明确...
在Java编程语言中,文件的读写操作是基础且至关重要的功能。本示例将深入讲解如何进行简单易懂的文件读写,包括追加内容和处理换行问题。Java的IO流(Input/Output Stream)是实现这一功能的核心工具。 首先,我们...
首先,Java中最基础的文件读取方式是通过`java.io.File`类来创建文件对象,然后使用`java.io.FileInputStream`或`java.io.FileOutputStream`来读写文件。在这个例子中,`ReadFromFile`类中包含两种读取文件的方法:...
在Java编程中,读取文件、对数据进行排序并重新写入文件是常见的操作,尤其在数据处理和分析场景中。下面将详细讲解这个过程,包括相关知识点和具体实现。 首先,我们需要导入Java的`java.io`包,该包包含了处理...
在Java编程语言中,文件的读写操作是日常开发中不可或缺的部分。本实例将深入探讨如何使用Java进行文件的读取和写入操作,这对于处理数据存储、日志记录、配置文件管理等任务至关重要。首先,我们需要理解Java中的几...
在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...
本文主要关注如何使用Java来读取文件内容,包括四种常见的读取方式:按字节读取、按字符读取、按行读取以及随机读取。此外,我们还将讨论如何向文件追加内容。 一、按字节读取文件内容 在Java中,`java.io ...