4个答案 按时间排序 按投票排序
-
采纳的答案
import java.io.*; public class ReadBigFileLineByLine { public static void main(String[] args) { try{ //Big file to read String fileName = "MyBigFile.txt"; FileReader fileReader = new FileReader(fileName); BufferedReader bufferedReader = new BufferedReader(fileReader); String oneLine; while ((oneLine = bufferedReader.readLine()) != null) { System.out.println(oneLine); } bufferedReader.close(); }catch(Exception e){ System.out.println("Error while reading file:" + e.getMessage()); } } }
2014年5月19日 17:59
-
大文件还是用内存映射吧,从FileChannel得到map来处理,代码就不贴了,一搜一大堆,没什么复杂的,你想想5g的文件,少做一次拷贝,效率会提高多少。。。
2014年5月20日 09:46
-
搞了半天的测试数据 数据量过大 电脑都卡住啦半天不能动 找了个类似的例子 看看对你有没有电帮助
import java.io.*;
import java.util.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.lang.String;
import java.awt.*;
//
//
// Red
//
//
public class Red
{
public static void main(String []args) throws IOException
{
// int aac;
//输出原文件
System.out.println("Program Beginning ... ...");
FileInputStream inStream = new FileInputStream("demo.txt"); //文件放在本程序的
int inread = inStream.available(); //同一文件目录下
byte inword[] = new byte[inread];
int bytesRead = inStream.read(inword,0,inread);
System.out.println(new String(inword,0));
char ttc[] = new char[inread+2];
String readouts[] = new String[10];
System.out.println("...............................");
int cline = 0 ;
int bline = 0 ;
int eline = 0 ;
//一次取一行将原文件内容归纳成按行存储的输入流
ttc[inread] = 13;
ttc[inread+1] = 10;
for(int i = 0 ; i < inread ; i++)
{
ttc[i] = (char) inword[i];
System.out.print(ttc[i]);
if(ttc[i] == 10 || i == (inread-1))
{
eline = i;
if(i == (inread-1))
readouts[cline] = new String(ttc,bline,(eline-bline+3));
else
readouts[cline] = new String(ttc,bline,(eline-bline+1));
bline = i+1;
cline++;
}
}
System.out.println();
System.out.println("...............................");
inStream.close();
//将每行的内容在屏幕上显示一遍
for(int l = 0 ; l < cline ; l++)
{
System.out.print(readouts[l]);
}
System.out.println(); //输入一空行。
//compare 按字典顺序对比,并按照顺序排序
String abba = new String();
for(int bn = 0 ; bn < cline-1 ; bn++)
{
for(int m = 0 ; m < cline-1-bn ; m++)
{
int duibi = readouts[m].compareTo(readouts[m+1]);
if(duibi > 0 )
{
abba = readouts[m];
readouts[m] = readouts[m+1];
readouts[m+1] = abba;
}
}
}
System.out.println("This documents 'flow' has been sort now...");
// cout the sort string 输出排好顺序的每行内容
for(int l = 0 ; l < cline ; l++)
{
System.out.print(readouts[l]);
}
///write string in txt 输出一行...号
System.out.println(".................");
// cout if documents exist判断文件是否存在,不存在则创建一新文件
File testtxt = new File("");
if(testtxt.exists() == false)
{
System.out.println("d.txt is not exist");
System.out.println("Creat new documents now....waiting.....");
testtxt = new File("d.txt");
}
else System.out.println("Have found the document \" d.txt\" ");
if(testtxt.exists() == true)
System.out.println("Creat \"d.txt\" successly...Congratulation!!!");
//利用新创立的文件,创建一个输出流,以方便写入文件
FileOutputStream outStream = new FileOutputStream("d.txt");
String houl = new String();
//将排好顺序的内容合并到一个字符串中
for(int i = 0 ; i < cline ; i++)
{
houl = houl+readouts[i];
}
//打印该字符串
houl = houl+'\n';
System.out.println(houl);
System.out.println("begin store these data...");
//将此字符串的内容写入输出流所代表的文件
for (int i = 0 ; i < inread ; i++)
{
outStream.write(houl.charAt(i));
}
//关闭输出流
outStream.close();
//创建一新的输入流,并在屏幕显示输入的内容。
System.out.println("This documents stored ok..!~~");
System.out.println("Program Beginning ... ...");
FileInputStream inStreamnew = new FileInputStream("d.txt");
int inreadnew = inStreamnew.available();
byte inwordnew[] = new byte[inreadnew];
int bytesReadnew = inStreamnew.read(inwordnew,0,inreadnew);
System.out.println("This is a test for this program...");
System.out.println(new String(inwordnew,0));
//关闭输入流
inStreamnew.close();
}
}2014年5月19日 19:47
相关推荐
Java读取大文件的处理 Java读取大文件的处理是Java编程中的一项重要技术,特别是在处理大文件时需要注意性能和响应速度。下面我们将对Java读取大文件的处理技术进行详细的介绍。 标题解释 Java读取大文件的处理是...
### Java读取大文件技术详解 #### 一、引言 在Java开发中,处理大文件是一项常见的任务,尤其在数据分析、日志处理等领域尤为重要。本文将深入探讨如何使用Java来高效地读取大文件,并提供一个具体的示例代码进行...
`RandomAccessFile`类提供了随机访问文件的能力,可以读写文件的任意位置。在这里,它与`FileChannel`一起使用,用于创建`MappedByteBuffer`。 4. **FileChannel**: `FileChannel`是`RandomAccessFile`的一个...
在Java编程中,处理大容量文本文件是一项挑战,因为传统的逐行读取方式可能会消耗大量内存,导致程序崩溃。为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行...
完美解决java读取大文件内存溢出的问题 在Java中读取大文件时,内存溢出是一个常见的问题。传统方式的读取文件方式会将整个文件读取到内存中,导致程序抛出OutOfMemoryError异常。但是,我们可以通过行迭代方式来...
Java读取CSV例子 Java读取CSV例子是通过使用javacsv-2.0.jar包来实现的。javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来...
### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...
在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...
要实现Java读取局域网共享文件,主要涉及以下步骤和知识点: 1. **网络路径表示**:Java中,网络路径通常以UNC(Universal Naming Convention)格式表示,形如`\\hostname\shared_directory\file.txt`。这里`...
`mpxj`是一个开源的Java库,专门用于读取和写入Microsoft Project文件,包括MPP格式。这个库提供了丰富的API,使得开发者可以在Java应用中方便地操作这些项目管理文件。 首先,让我们详细了解一下如何在Java中使用`...
以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。
2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...
本篇文章将深入探讨如何使用Java来读取TIFF文件,并获取其尺寸——即图像的宽度(长)和高度。 在Java中,处理TIFF文件通常需要借助第三方库,因为Java的标准API(如`java.awt.image.BufferedImage`)并不直接支持...
"Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...
本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...
### Java读取SHP文件及DBF属性的关键技术解析 #### 概述 在地理信息系统(GIS)领域,Shapefile是一种常见的矢量数据格式,用于存储地理位置信息及相关属性数据。一个完整的Shapefile由多个文件组成,包括.shp、....
JAVA实现远程文件读取 JAVA是一种广泛应用于软件开发的编程语言,随着网络技术的发展,JAVA也提供了许多支持远程文件读取的功能,本文将详细介绍JAVA实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket...
在Java编程中,读取配置文件是常见的任务,特别是在开发需要灵活配置的系统时。配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求...
标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...