public static String loadAFileToStringDE1(File f) throws IOException {
long beginTime = System.currentTimeMillis();
InputStream is = null;
String ret = null;
try {
is = new BufferedInputStream( new FileInputStream(f) );
long contentLength = f.length();
ByteArrayOutputStream outstream = new ByteArrayOutputStream( contentLength > 0 ? (int) contentLength : 1024);
byte[] buffer = new byte[4096];
int len;
while ((len = is.read(buffer)) > 0) {
outstream.write(buffer, 0, len);
}
outstream.close();
ret = outstream.toString();
//byte[] ba = outstream.toByteArray();
//ret = new String(ba);
} finally {
if(is!=null) {try{is.close();} catch(Exception e){} }
}
long endTime = System.currentTimeMillis();
System.out.println("方法1用时"+ (endTime-beginTime) + "ms");
return ret;
}
public static String loadAFileToStringDE2(File f) throws IOException {
long beginTime = System.currentTimeMillis();
InputStream is = null;
String ret = null;
try {
is = new FileInputStream(f) ;
long contentLength = f.length();
byte[] ba = new byte[(int)contentLength];
is.read(ba);
ret = new String(ba);
} finally {
if(is!=null) {try{is.close();} catch(Exception e){} }
}
long endTime = System.currentTimeMillis();
System.out.println("方法2用时"+ (endTime-beginTime) + "ms");
return ret;
}
public static String loadAFileToStringDE3(File f) throws IOException {
long beginTime = System.currentTimeMillis();
BufferedReader br = null;
String ret = null;
try {
br = new BufferedReader(new FileReader(f));
String line = null;
StringBuffer sb = new StringBuffer((int)f.length());
while( (line = br.readLine() ) != null ) {
sb.append(line).append(LINE_BREAK);
}
ret = sb.toString();
} finally {
if(br!=null) {try{br.close();} catch(Exception e){} }
}
long endTime = System.currentTimeMillis();
System.out.println("方法3用时"+ (endTime-beginTime) + "ms");
return ret;
}
3个方法去读取一个大于50M的文件,当不设置jvm参数时都OutofMemery,当设置-Xmx128M时。只有方法3 可以通过,设置到-Xmx256M时也只有方法3可以通过,干脆设置512M,都可以了,运行时间如果正常的话一般都在4~5S
分享到:
相关推荐
下面我们将深入探讨Java IO读取文件的技术及其在大数据场景下的应用。 1. **基础概念** - **流(Stream)**:Java IO基于流的概念,流是一组有序的数据序列,可以是字节流或字符流。数据从源(如文件)流向目的地...
总的来说,Java基于IO流读取文件的过程包括以下几个步骤: 1. 获取文件路径并解码。 2. 创建`File`对象,表示要读取的文件。 3. 使用`FileInputStream`创建字节输入流,用于读取二进制数据。 4. 使用`...
在Java编程语言中,按顺序读取文件是基础且重要的操作。这通常涉及到使用I/O流(Input/Output Stream)来处理文件数据。本篇文章将深入探讨如何在Java中实现按顺序读取文件,以及涉及的相关知识点。 首先,Java提供...
在这个例子中,我们首先定位到文件的指定位置,然后读取100个字节的数据。 总的来说,选择哪种文件读取方法取决于你的具体需求。如果你正在处理二进制数据,按字节读取可能是最好的选择。处理文本文件时,按字符或...
JavaIO简单的写入读取文件 javaIO简单的写入读取文件是Java编程语言中最基本的文件操作。下面我们将详细介绍javaIO简单的写入读取文件的知识点。 一、 文件写入 文件写入是指将数据从程序中写入到文件中。Java中...
Java IO 流、文件读取操作 Java IO 流是 Java 语言中的一种基本输入/输出机制,它提供了多种方式来处理输入/输出操作。在 Java 中,IO 流可以分为两大类:字节流和字符流。字节流主要用于处理二进制数据,而字符流...
`mpxj`是一个开源的Java库,专门用于读取和写入Microsoft Project文件,包括MPP格式。这个库提供了丰富的API,使得开发者可以在Java应用中方便地操作这些项目管理文件。 首先,让我们详细了解一下如何在Java中使用`...
- `java.io.FileInputStream`: 用于打开文件进行读取。 - `java.io.InputStreamReader`: 用于将输入流转换为字符流,并指定字符编码。 - `java.io.BufferedReader`: 用于逐行读取文本文件。 ```java import java.io...
- Java提供`java.io`包中的`BufferedReader`类,用于高效地读取文本文件。首先,我们需要创建一个`FileReader`对象,指定要读取的TXT文件路径,然后通过`FileReader`创建`BufferedReader`对象。 - 使用`...
在Java编程语言中,读取目录下指定的文件是一项常见的任务,这主要涉及到文件I/O操作。Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现...
根据给定的信息,我们可以深入探讨Java IO操作中的文件读写技术,特别关注如何从一个文本文件中筛选数据并保存到另一个文件中。 ### Java IO读写文件基础 在Java中,进行文件读写的操作通常涉及两个核心包:`java....
- 此外还需要导入标准Java库如`java.io.*`等用于文件操作。 #### 代码分析与解读 1. **类定义**:`public class ShapefileReader`定义了一个名为`ShapefileReader`的公共类,用于处理Shapefile文件的读取工作。 ...
2. **读取文件内容**:使用`java.io.BufferedReader`读取文件内容,逐行读取。这将使我们能够解析每一行并根据需要处理。 ```java BufferedReader reader = new BufferedReader(new InputStreamReader(fis, ...
在Java编程中,将CSV(逗号分隔值)文件的数据导入到MySQL...此外,考虑到文件读写和数据库操作的性能,你还可以考虑使用多线程或者批量插入策略来提高效率。记得在完成后关闭所有资源,以防止内存泄漏和资源浪费。
Java NIO(New IO)提供了非阻塞的I/O操作,可以更高效地处理文件读取: ```java Path path = Paths.get("config.properties"); Properties props = new Properties(); try (InputStream in = Files....
这个"STL.zip_java读取stl_stl读取_java"的主题涉及到使用Java编程语言来处理ASCII格式的STL文件。在Java中读取STL文件可以帮助我们解析其内部的几何数据,例如三角面片的顶点坐标,从而进行3D模型的构建和分析。 ...
例如,`java.io.FileInputStream`可以用来读取二进制文件,`java.io.FileReader`和`java.io.BufferedReader`可以用来读取文本文件。 4. **相对路径和绝对路径**: - 在Java中读取文件时,可以使用相对路径或绝对...
本篇文章将深入探讨如何使用Java来读取TIFF文件,并获取其尺寸——即图像的宽度(长)和高度。 在Java中,处理TIFF文件通常需要借助第三方库,因为Java的标准API(如`java.awt.image.BufferedImage`)并不直接支持...
在Java编程环境中,读取PDF文件中的内容是一个常见的任务,特别是在处理文档自动化或者数据分析时。PDF(Portable Document Format)是一种跨平台的文件格式,用于精确地保留文档的格式和内容。下面将详细介绍如何...