package com.test.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.List;
public class AppendToFile {
/**
* 随机访问方式
* @param fileName
* @param content
*/
public static void appendMethodA(String fileName, String content) {
try {
// 打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件长度,字节数
long fileLength = randomFile.length();
// 将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.write(System.getProperty("line.separator").getBytes());
randomFile.write(content.getBytes());
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 追加访问方式
* @param fileName
* @param content
*/
public static void appendMethodB(String fileName, String content) {
try {
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(System.getProperty("line.separator"));
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void rewriteMethodA(String fileName, String content) {
try {
List<String> relist = readFile(fileName, content);
for(String s:relist){
String[] ls =s.split("#");
System.out.println(s +" ---"+ls.length +"ls:"+ls.toString());
}
// writeFile(fileName, relist);
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
// FileWriter writer = new FileWriter(fileName);
// writer.write(System.getProperty("line.separator"));
// writer.write(content);
// writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void writeFile(String filePath, List<String> list)
throws IOException {
File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream outputStream = new FileOutputStream(file);
for (String s : list) {
outputStream.write(s.getBytes());
}
outputStream.close();
}
private static List<String> readFile(String filePath, String str)throws IOException {
File file = new File(filePath);
BufferedReader reader = null;
List<String> list = new ArrayList<String>();
reader = new BufferedReader(new FileReader(file));
String text = reader.readLine();
while (text != null) {
if (!text.trim().equals(str)) {
list.add(text + "\r\n");
}
text = reader.readLine();
}
reader.close();
return list;
}
public static void main(String[] args) throws IOException {
String fileName = "D:\\workspace\\t1.txt";
rewriteMethodA(fileName, "AA");
/*String fileName2 = "D:\\workspace\\t2.txt";
String content = "公民";
//按方法A追加文件
AppendToFile.appendMethodA(fileName2, content);
AppendToFile.appendMethodA(fileName2, "AA");
//显示文件内容
ReadFromFile.readFileByLines(fileName2);
//按方法B追加文件
AppendToFile.appendMethodB(fileName, content);
AppendToFile.appendMethodB(fileName, "ZZ");
//显示文件内容
ReadFromFile.readFileByLines(fileName);*/
}
}
public class ReadFromFile {
public static void readFileByLines(String fileName) throws IOException {
File a = new File(fileName);
if(a.exists()){
FileInputStream fi = new FileInputStream(a);
InputStreamReader isr = new InputStreamReader(fi, "GBk");
BufferedReader bfin = new BufferedReader(isr);
String rLine = "";
while((rLine = bfin.readLine())!=null){
System.out.println(rLine);
}
}
}
}
分享到:
相关推荐
从给定的代码片段来看,它主要实现了一个功能:读取一个TXT文件,过滤掉重复的行,并且可以将处理后的结果重写回原TXT文件,以达到“滤重”的效果。接下来,我们将深入解析这段代码,了解其工作原理及如何高效地实现...
Java NIO(New I/O)是一种基于缓冲区的 I/O 操作方式,提供了高效的文件读写功能。使用 Java NIO,可以实现超大文件的读写,特别是在处理大文件时。Java NIO 提供了以下几个关键组件: * ByteBuffer:缓冲区对象,...
例如,`java.io`包提供了基础的文件读写功能,而`java.nio`包则引入了非阻塞I/O,对于处理大文件更有效率。 在处理大文件时,我们通常不会一次性加载整个文件到内存,而是采用流式处理或分块读取。在Java中,`...
改:修改图书信息时,系统需找到要修改的记录,替换其内容,同样涉及到文件读写和查找操作。 查:查询图书信息则可能需要遍历整个TXT文件,找到匹配的记录并显示。为了提高查询效率,可以考虑实现简单的索引机制。 ...
当用户选择文件后,`getSelectedFile()`方法返回一个`File`对象,你可以用它来进行读写操作。注意,确保在实际操作文件之前检查用户是否真的选择了文件(即`result == JFileChooser.APPROVE_OPTION`)。 6. **目录...
总之,理解并掌握Android中的文件存储,特别是.txt文件的读写、重写和删除,是每个Android开发者必备的基础技能。结合适当的辅助工具类,可以大大提高开发效率,并确保数据存储的可靠性和稳定性。
为了在Java考试中取得好成绩,理解并熟练掌握I/O流、线程、特殊for语句以及文件读写是至关重要的。以下是对这些核心概念的详细阐述。 首先,让我们谈谈Java中的I/O流。I/O流是Java中处理数据输入和输出的关键机制。...
XML(eXtensible Markup Language)是一...以上是关于XML文件读写的关键知识点,掌握这些技能后,你就能灵活地在Java项目中处理XML数据,无论是读取配置文件、存储复杂数据还是与其他系统进行数据交换,都能游刃有余。
本示例("java文件上传dome")聚焦于使用Tomcat中的Servlet和Apache Commons FileUpload库来实现这一功能。以下是这个示例中涉及的关键知识点: 1. **Servlet**: Servlet是Java EE中用于扩展服务器功能的Java类。...
`java.io`包提供了多种类和接口来实现文件流,如FileInputStream和FileOutputStream用于读写文件,BufferedReader和BufferedWriter用于高效读写文本文件,而FileReader和FileWriter则更简单地用于读写字符数据。...
Java文件传输RMI,全称为Remote Method Invocation(远程方法调用),是Java平台提供的一种分布式计算技术。通过RMI,Java程序可以在网络上的不同计算机之间透明地调用对象的方法,仿佛这些对象都在本地一样。这一...
例如,`File`类用于表示文件对象,`FileInputStream`和`FileOutputStream`用于读写文件内容。上传文件前,可能需要先将本地文件读入内存,这可以通过`BufferedReader`或`FileInputStream`配合`byte[]`数组实现。 2....
Java自动解压缩文件是编程领域中的一个重要话题,尤其是在服务器端应用中,经常需要处理上传的压缩文件并进行解压操作。Java提供了丰富的API来支持这一功能,主要涉及到`java.util.zip`包中的类,如`ZipInputStream`...
综上所述,基于Java的货物进销管理系统涉及到了Java中的多个重要概念和技术点,包括文件读写操作、集合类的使用、字符串操作以及面向对象的设计思想。熟练掌握这些知识点对于开发一个高效、可靠的货物进销管理系统至...
Java代码实现对properties文件有序的读写的示例 本篇文章主要介绍了Java代码实现对properties文件...本篇文章提供了一个Java代码实现对properties文件有序的读写的示例,解决了Properties文件读写时元素顺序的问题。
通过以上介绍,我们可以看到`commons-fileupload`和`commons-io`在Java文件上传中的重要性。它们提供了方便的API,使得开发者可以轻松处理复杂的文件上传需求,同时也为文件操作提供了强大的支持。
本教程将详细讲解如何在Java环境中处理XML文件,包括读取和写入XML的基本操作。 一、XML简介 XML的设计目标是传输和存储数据,而非显示数据。它通过自定义的标签来描述数据,使得数据具有良好的可读性和可扩展性。...
本项目"Java+Swing+Txt实现通讯录管理系统"利用了Swing库来创建用户界面,并结合文本文件(Txt)进行数据存储,实现了基本的通讯录管理功能,包括添加联系人、删除联系人、修改联系人信息以及查询联系人等操作。...
本文将深入探讨XML属性文件的读写操作,结合提供的标签“源码”和“工具”,我们将讨论如何在Java环境中进行XML文件的处理。 首先,XML文件结构清晰,易于人和机器阅读。它由元素、属性、注释、处理指令等组成。...
以上内容涵盖了Android中文件读写的基本操作、SQLite数据库的管理和ListView的使用。在实际项目中,你可能需要根据具体需求进行更复杂的操作,如文件的追加、数据库事务处理、ListView的点击事件等。在`...