package ewanbao.mydomain.com;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ReadHugeFile {
public static void main(String[] args) {
/* check the argument */
if(args.length != 2){
System.out.println("java ewanbao.mydomain.com.ReadHugeFile" +
" [Input File Name]" +
" [Output File Name]");
System.exit(0);
}
BufferedWriter writer = null;
try{
/* prepare the output */
writer = new BufferedWriter(new FileWriter(args[1]));
/* prepare the input */
String strBuf = "";
int bufsize = 1024;
byte[] bs = new byte[bufsize];
ByteBuffer byteBuf = ByteBuffer.allocate(bufsize);
FileChannel channel = new RandomAccessFile(args[0], "r").getChannel();
while(channel.read(byteBuf) != -1){
/* read the content to byte array */
int size = byteBuf.position();
byteBuf.rewind();
byteBuf.get(bs);
byteBuf.clear();
String tempString = new String(bs, 0, size);
int fromIndex = 0;
int endIndex = 0;
while((endIndex = tempString.indexOf("/n", fromIndex)) != -1){
String line = tempString.substring(fromIndex, endIndex);
line = new String(strBuf + line);
writer.write(line);
writer.newLine();
strBuf = "";
fromIndex = endIndex + 1;
}
strBuf = tempString.substring(fromIndex, size);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(writer != null){
try{
writer.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行读取大文件,并将其内容解析后存储到数据库中。本文将详细讲解这一过程。 首先,我们需要了解`java.nio`包...
在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...
Java实现按行分割大文件是指将一个大的文本文件按行分割成几个小文件的过程。这个过程可以使用Java语言来实现,本文将详细介绍Java实现按行分割大文件的方法。 知识点1: Java中读取大文件的方法 Java中有多种方法...
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件...
在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的结果写回原文件或者新的文件中。下面...
java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...
对于文本文件,尤其是日志或配置文件,按行读取文件内容更为常见。Java提供`java.io.BufferedReader`类实现这一功能: ```java BufferedReader reader = new BufferedReader(new FileReader(fileName)); String...
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 ...
根据给定的文件信息,我们将深入探讨Java读写文件文本文件的关键知识点,这些知识点主要集中在文件的读取、写入以及流的复制等操作上。 ### Java读取文本文件 在Java中,读取文本文件通常涉及到使用`InputStream`...
以上就是关于Java写文件的基本知识,理解并熟练掌握这些概念和方法,将能有效地在Java程序中实现文件的写入操作。在实际应用中,根据具体需求选择合适的方法和策略,确保数据的正确存储和传输。
根据给定的文件信息,我们可以总结出一系列关于Java中读取文件的方法,这些方法涵盖了不同层次的数据读取,包括字节、字符以及行级别的读取。以下是对这些知识点的详细阐述: ### Java读取文件方法大全:读取File流...
在Java编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
在本示例中,`StringBuffer`用于逐行读取文件并将内容存储到缓冲区中。 #### 代码实现: ```java public void readToBuffer(StringBuffer buffer, InputStream is) throws IOException { String line; ...
使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com
然而,为了方便文本文件的读取,我们更常用`Reader`和其子类,如` FileReader`和`BufferedReader`。以下是一个使用`BufferedReader`读取文件的简单示例: ```java try (BufferedReader reader = new BufferedReader...
Java解析FTP服务器文本文件 Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar...
这个程序会读取名为"binary_file.bin"的二进制文件,将其中的每个字节转换为ASCII字符,并将结果写入"test_file.txt"文本文件。请注意,如果二进制文件包含非ASCII字符,转换可能会导致乱码或不可读的文本。 在实际...
在Java编程语言中,读取文件是常见的任务之一,尤其对于处理文本文件,如TXT文件,以行为单位读取文件内容是一种效率较高且易于管理数据的方式。本篇将深入探讨如何使用Java进行逐行读取TXT文件,并提供相关示例代码...
2. 使用ProgressMonitorInputStream读取文件:我们使用了ProgressMonitorInputStream来读取大文件,这样可以监控文件的读取进度。 3. 使用多线程技术:我们使用了多线程技术来读取大文件,以提高响应速度。当按钮被...