package filecollector;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.RandomAccessFile;
import java.util.Stack;
public class FileRead {
public static void main(String[] args) {
bufReader();
randomReader();
}
public static void bufReader(){
File file= new File("e:/test.txt");
Stack st = new Stack();
long currpos=0;
long startTime=System.currentTimeMillis();
try {
FileReader fileReader = new FileReader(file);
BufferedReader read = new BufferedReader(fileReader);
String line = null;
while ((line = read.readLine()) != null) {
if(line.startsWith("IE6")){
st.push(currpos);
}
currpos+=(line.length()+2);
}
if(st.size()>20000){
currpos=Long.valueOf(st.get(st.size()-20).toString());
}else{
currpos=0;
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(currpos);
FileReader fileReader;
try {
fileReader = new FileReader(file);
BufferedReader read = new BufferedReader(fileReader);
read.skip(currpos);
System.out.println(read.readLine());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(System.currentTimeMillis()-startTime);
}
public static void randomReader(){
File file= new File("e:/test.txt");
long startTime=System.currentTimeMillis();
int count=0;
String line=null;
try {
RandomAccessFile randomReader = new RandomAccessFile(file, "r");
long filelen=randomReader.length()-1;
while(filelen>0&&count<20000){
randomReader.seek(filelen);
char c=(char)randomReader.read();
if(c =='\r'||c =='\n'){
line = randomReader.readLine();
if(line!=null&&line.startsWith("IE6")){
count++;
}
}
filelen--;
}
System.out.println(filelen);
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(System.currentTimeMillis()-startTime);
}
}
如果遇到随机读取文件,使用时最好先比较一下计算时间
分享到:
相关推荐
"Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...
1.java读取文件,输出文件 2.java正则表达式匹配* 2个文件内容是:中文 英文,然后分别比较中文部分和英文部分,文件内容如下: 520香烟 520cigarette 678月 678yue A-zone A-zone A.O.史密斯 AOsms ACE床垫 ACE ...
不同的操作系统、软件可能使用不同的默认编码格式,这就会导致在跨平台或跨软件间读写文件时出现乱码问题。因此,在处理文件时,明确指定文件的编码格式是十分重要的。 #### 三、Java读取XML文件 对于XML文件的读取...
在Java中,文件读取是通过`java.io`包中的类来实现的。本例中用到了`BufferedReader`和`FileReader`。 - **BufferedReader**:提供了一个方便的接口用于读取文本文件中的字符数据。它具有从输入流中读取文本的功能...
Java读取excel,Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作。
- **FileInputStream** 和 **FileOutputStream** 是字节流的子类,专门用于读写文件。它们提供读取和写入文件的基本功能。 4. **字符流**: - **Reader** 和 **Writer** 是字符流的基类,处理字符数据。 - **...
在Java编程中,读取文件、对数据进行排序并重新写入文件是常见的操作,尤其在数据处理和分析场景中。下面将详细讲解这个过程,包括相关知识点和具体实现。 首先,我们需要导入Java的`java.io`包,该包包含了处理...
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
### Java删除某行和读写TXT文件 在Java中,如果需要从文本文件中删除特定行,实际上并没有直接提供这样的方法。通常的做法是先将文件中的所有内容读取到内存中,然后根据需要过滤掉不需要的行,最后再将处理后的...
本文将重点探讨Java在不同版本中所提供的文件读写方式,并对其进行对比分析。 #### 一、JDK 1.0 中的文件读写操作 在JDK 1.0 中,主要依赖于`InputStream`和`OutputStream`两个基类来实现文件的读写功能。 1. **读...
总的来说,通过Java读取文件头内容判断文件类型是一种实用的技术,尤其在处理未知或不安全的文件时。理解并掌握这个方法,能够帮助我们在实际开发中更好地处理各种文件操作,提高程序的健壮性和安全性。
通过合理选择和组合这些工具,我们可以构建一个强大的文件对比系统,满足各种需求,包括文档去重、版本差异分析等。对于特定格式的文件(如Word、PDF),需要借助专门的库来解析内容,然后进行对比。最后,将所有...
通过对比两种方法的实现原理、示例代码以及优缺点,我们可以根据实际需求选择合适的方法来进行文件比较。对于纯文本文件,基于字符串的方法更为简单直观;而对于包含特殊格式或二进制数据的文件,则建议使用基于字节...
### Java IO读写文件基础 在Java中,进行文件读写的操作通常涉及两个核心包:`java.io` 和 `java.nio`。这里我们主要关注 `java.io` 包,它提供了多种类来处理文件的读写操作,如`FileReader`, `FileWriter`, `...
### Java 文件路径获取方法详解 #### 一、引言 在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好...
目前使用 SAX 比较多,与 DOM 主要区别是 SAX 是一行一行读取 XML 文件进行分析,适合比较大文件,DOM 是一次性读入内存,显然不能对付大文件。 下面是一个使用 SAX 解析 XML 配置文件的 Java 程序: ```java ...
同时,文章还将介绍使用 Guava 和 Apache Commons IO 库来读取大文件的不同方法,并对比它们的内存占用情况。 知识点一:在内存中读取文件行的标准方式 * 使用 Guava 和 Apache Commons IO 库提供的方法读取文件行...
它提供了许多实用工具类,简化了文件读写、流操作、文件比较、文件过滤等任务。例如,`FileUtils`类提供了一系列静态方法,可以方便地进行文件和目录的复制、移动、删除等操作。`IOUtils`类则提供了对流进行读取、...
在Java中,我们可以使用`FileInputStream`和`FileOutputStream`类来读取和写入文件。以下是一个简单的示例,展示了如何将文件分割成固定大小的小块: ```java import java.io.*; public class FileSplitter { ...
### Java程序读取服务器端数据文件的解决方法及比较 #### 概述 在现代软件开发过程中,尤其是在网络编程领域,Java作为一种强大的编程语言被广泛应用。然而,在开发客户端程序时,经常会遇到Java程序所定义与使用...