1、读文件:
readLine()是BufferedReader类的一个方法,它每次从缓冲里读一行数据。
BufferedReader类参数可为:InputStreamReader、FileReader类型
FileReader(File file)
FileReader(String fileName)
InputStreamReader(InputStream in)
//接收键盘输入作为输入流,把输入流放到缓冲流里面
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferReader in=new BufferReader(new FileReader(name))
请编写一个字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
Java代码
void doPack(String fileNameAndPath)
{
FileReader fr;
try {
fr=new FileReader(fileNameAndPath);
BufferedReader br=new BufferedReader(fr);
String readLine=null;
int lineNumber=1;
while((readLine=br.readLine())!=null)
{
readLine=lineNumber+":"+readLine;
System.out.println(readLine);
lineNumber++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
void doPack(String fileNameAndPath)
{
FileReader fr;
try {
fr=new FileReader(fileNameAndPath);
BufferedReader br=new BufferedReader(fr);
String readLine=null;
int lineNumber=1;
while((readLine=br.readLine())!=null)
{
readLine=lineNumber+":"+readLine;
System.out.println(readLine);
lineNumber++;
}
} catch (Exception e) {
e.printStackTrace();
}
} 易错地方:
Java代码
while(br.readLine()!=null){
System.out.println(br.readLine());
}
其中每个循环(一次打印)br.readLine()被执行了两次,当然是隔行打印!!.
应该是
BufferedReader br=new BufferedReader(file);
String line = null;
while((line = br.readLine()) != null){
System.out.println(line);
}
while(br.readLine()!=null){
System.out.println(br.readLine());
}
其中每个循环(一次打印)br.readLine()被执行了两次,当然是隔行打印!!.
应该是
BufferedReader br=new BufferedReader(file);
String line = null;
while((line = br.readLine()) != null){
System.out.println(line);
} 2、写文件:
BufferWriter(Writer out)
BufferWriter的参数类型可为:FileWriter、OutputStreamWriter
FileWriter(String fileName)
FileWriter(File file)
OutputStreamWriter(OutputStream out)
1、
Java代码
File file = new File(“D:\\abc.txt“);
FileWriter fw = new FileWriter("f:/jackie.txt");//创建FileWriter对象,用来写入字符流
BufferedWriter output = new BufferedWriter(fw);
output.write(s1);
File file = new File(“D:\\abc.txt“);
FileWriter fw = new FileWriter("f:/jackie.txt");//创建FileWriter对象,用来写入字符流
BufferedWriter output = new BufferedWriter(fw);
output.write(s1);
2.
Java代码
Writer out
= new BufferedWriter(new OutputStreamWriter(System.out));
Writer out
= new BufferedWriter(new OutputStreamWriter(System.out));
3、
Java代码
FileOutputStream fo = new FileOutputStream(filePath);
OutputStreamWriter out = new OutputStreamWriter(fo, "UTF-8");
out.write(fileContent);
out.close();
FileOutputStream fo = new FileOutputStream(filePath);
OutputStreamWriter out = new OutputStreamWriter(fo, "UTF-8");
out.write(fileContent);
out.close();
其他:
FileOutputStream 用于写入诸如图像数据之类的原始字节的流。
FileWriter只能写文本文件
InputStream in = new BufferedInputStream( new FileInputStream(filePath));
例子:
Java代码
private void copy(File src, File dst) {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
int len = 0;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != out) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void copy(File src, File dst) {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
int len = 0;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != out) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} Java代码
/* Reads some number of bytes from the input stream and stores them into
* the buffer array <code>b</code>. The number of bytes actually read is
* returned as an integer.
*/
public int read(byte b[])
*
* Writes <code>len</code> bytes from the specified byte array
* starting at offset <code>off</code> to this output stream.
*/
ublic void write(byte b[], int off, int len)
/* Reads some number of bytes from the input stream and stores them into
* the buffer array <code>b</code>. The number of bytes actually read is
* returned as an integer.
*/
public int read(byte b[])
/*
* Writes <code>len</code> bytes from the specified byte array
* starting at offset <code>off</code> to this output stream.
*/
public void write(byte b[], int off, int len) 。。。
InputStream转byte[]:
Java代码
private byte[] InputStreamToByte(InputStream is) throws IOException {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
byte bb[] = bytestream.toByteArray();
bytestream.close();
return bb;
}
private byte[] InputStreamToByte(InputStream is) throws IOException {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
byte bb[] = bytestream.toByteArray();
bytestream.close();
return bb;
}
byte[] 转InputStream
Java代码
byte[] data;
InputStream is = new ByteArrayInputStream(data);
byte[] data;
InputStream is = new ByteArrayInputStream(data);
分享到:
相关推荐
总结起来,Java中按顺序读取文件主要依赖于I/O流,特别是`FileReader`和`BufferedReader`类的组合。理解这些基本概念和操作对于任何Java开发者来说都是至关重要的,因为它们构成了处理文件数据的基础。在实际编程中...
2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...
### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...
Java读取大文件的处理是Java编程中的一项重要技术,特别是在处理大文件时需要注意性能和响应速度。下面我们将对Java读取大文件的处理技术进行详细的介绍。 标题解释 Java读取大文件的处理是指使用Java语言来读取大...
在Java中,进行二进制文件的读写操作是非常常见的需求,尤其是在处理非文本类型的文件(如图片、音频或视频等)时。本文将详细介绍如何使用`FileInputStream`和`FileOutputStream`类来实现二进制文件的读写,并提供...
### Java读取SHP文件及DBF属性的关键技术解析 #### 概述 在地理信息系统(GIS)领域,Shapefile是一种常见的矢量数据格式,用于存储地理位置信息及相关属性数据。一个完整的Shapefile由多个文件组成,包括.shp、....
在Java编程语言中,文件读写操作是程序与外部数据交互的基本能力。这篇学习笔记将带你初探这个领域,适合新手入门。我们将讨论如何使用Java进行文件的读取、写入以及一些常见的应用场景。 首先,Java提供了java.io...
总结,Java中的文件读写操作涉及到多个类和接口,理解并熟练运用它们是每个Java开发者必备的技能。通过上述介绍和示例,你应该对Java的文件操作有了基本的认识。实践中,你可以根据具体需求选择合适的方法和类,实现...
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
总结,Java中读取Properties文件是通过`java.util.Properties`类来实现的,涉及的关键步骤包括加载文件、获取键值对以及处理可能的异常。这种机制在许多场景下都非常实用,如数据库连接配置、应用设置等。理解并熟练...
总结来说,Java通过I/O流可以轻松读取本地HTML文件,结合`Jsoup`库可以方便地处理HTML内容,最后使用JDBC将处理后的数据保存到数据库。这些都是Java开发中常用的技术,对于网络编程和数据处理非常实用。
### Java读取Excel文件知识点详解 #### 一、引言 在日常开发工作中,经常需要处理Excel文件。Java作为一种广泛使用的编程语言,提供了多种库来读取Excel文件,其中较为常用的有Apache POI和JExcelApi等。本文将详细...
根据给定的文件信息,我们将深入探讨Java读写文件文本文件的关键知识点,这些知识点主要集中在文件的读取、写入以及流的复制等操作上。 ### Java读取文本文件 在Java中,读取文本文件通常涉及到使用`InputStream`...
总结,通过使用`java.nio`包,我们可以实现按行读取大文件,避免一次性加载整个文件导致的内存问题。同时,结合适当的解析策略和数据库插入操作,可以有效地将大文件内容解析并存储到数据库中。在实际应用中,应根据...
以上就是关于Java IO读写文件的基本操作及如何从一个文件中筛选数据并保存到另一个文件中的详细解析。通过这种方式,我们可以有效地处理文本文件中的数据,实现数据的筛选和转换功能。这对于处理大量数据、进行数据...
总结来说,xBaseJ是Java开发人员处理DBF文件的强大工具,它简化了读写过程,使得在Java应用程序中集成对DBF文件的操作变得轻松易行。如果你需要在项目中处理DBF数据,xBaseJ是一个值得考虑的优秀选择。
通过上述四个主要部分的分析,我们可以看到Java语言在处理文件读写方面提供了丰富的API支持。使用合适的类库可以极大地简化开发工作并提高程序的性能。例如,使用`StringBuffer`可以有效地处理字符串的动态增长;而`...
### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...
### Java读取资源文件时内容过长与换行的处理 在Java开发过程中,经常会遇到需要读取资源文件的情况,比如配置文件、属性文件等。这些文件中的内容有时会非常长,或者为了提高可读性,需要进行换行处理。本文将详细...
不同的操作系统、软件可能使用不同的默认编码格式,这就会导致在跨平台或跨软件间读写文件时出现乱码问题。因此,在处理文件时,明确指定文件的编码格式是十分重要的。 #### 三、Java读取XML文件 对于XML文件的读取...