用java写一个可以实现文本文件的读入、复制、查询和修改的程序,写出全带啊
时间: 2023-08-31 14:37:16 浏览: 141
### 回答1:
好的。下面是一个可以实现文本文件的读入、复制、查询和修改的 Java 程序:
```
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class TextFileOperations {
public static void main(String[] args) {
// 读入文件
File file = new File("file.txt");
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// 复制文件
File copyFile = new File("copy_file.txt");
try (BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(copyFile))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
// 查询文件
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要查询的字符串:");
String query = scanner.nextLine();
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
int lineNum = 0;
while ((line = reader.readLine()) != null) {
lineNum++;
if (line.contains(query)) {
System.out.println("在第 " + lineNum + " 行找到了查询的字符串:" + line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
// 修改文件
System.out.print("请输入要修改的字符串:");
String oldStr = scanner.nextLine();
System.out.print("请输入修改后的字符串:");
String newStr = scanner.nextLine();
try (BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedWriter writer = new BufferedWriter(new FileWriter(copyFile))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.cont
### 回答2:
下面是一个可以实现文本文件的读入、复制、查询和修改的Java程序的示例:
```java
import java.io.*;
public class FileOperations {
public static void main(String[] args) {
// 读取文本文件
String content = readFile("input.txt");
System.out.println("读取的内容是:\n" + content);
// 复制文本文件
boolean copied = copyFile("input.txt", "copy.txt");
System.out.println("复制文件是否成功:" + copied);
// 查询文本文件
boolean found = searchFile("input.txt", "hello");
System.out.println("文件中是否包含关键词\"hello\":" + found);
// 修改文本文件
boolean modified = modifyFile("input.txt", "hello", "world");
System.out.println("文件是否成功修改:" + modified);
}
// 读取文本文件
public static String readFile(String filename) {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return content.toString();
}
// 复制文本文件
public static boolean copyFile(String sourceFilename, String targetFilename) {
try (BufferedReader reader = new BufferedReader(new FileReader(sourceFilename));
BufferedWriter writer = new BufferedWriter(new FileWriter(targetFilename))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
// 查询文本文件
public static boolean searchFile(String filename, String keyword) {
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.contains(keyword)) {
return true;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
// 修改文本文件
public static boolean modifyFile(String filename, String oldString, String newString) {
try (BufferedReader reader = new BufferedReader(new FileReader(filename));
BufferedWriter writer = new BufferedWriter(new FileWriter(filename + ".temp"))) {
String line;
while ((line = reader.readLine()) != null) {
line = line.replace(oldString, newString);
writer.write(line);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
return false;
}
// 删除原文件,将临时文件重命名为原文件名
File originalFile = new File(filename);
if (!originalFile.delete()) {
return false;
}
File newFile = new File(filename + ".temp");
return newFile.renameTo(originalFile);
}
}
```
该程序提供了读取文本文件、复制文本文件、查询文本文件和修改文本文件的功能。你可以根据自己的需要调用这些方法来实现你的需求。
### 回答3:
写一个可以实现文本文件的读入、复制、查询和修改的程序,可以使用Java语言来实现。以下是一个示例程序的全套代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class TextFileManipulator {
private static final String FILE_PATH = "file.txt";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String choice;
do {
System.out.println("请选择操作:");
System.out.println("1. 读取文件");
System.out.println("2. 复制文件");
System.out.println("3. 查询文件");
System.out.println("4. 修改文件");
System.out.println("0. 退出");
choice = scanner.nextLine();
switch (choice) {
case "1":
readFile();
break;
case "2":
copyFile();
break;
case "3":
searchFile();
break;
case "4":
modifyFile();
break;
}
} while (!choice.equals("0"));
scanner.close();
}
private static void readFile() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH))) {
String line;
System.out.println("文件内容:");
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.out.println("读取文件失败:" + e.getMessage());
}
}
private static void copyFile() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH));
BufferedWriter writer = new BufferedWriter(new FileWriter("copy.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
System.out.println("文件复制成功");
} catch (IOException e) {
System.out.println("复制文件失败:" + e.getMessage());
}
}
private static void searchFile() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH));
Scanner scanner = new Scanner(System.in)) {
System.out.println("请输入要查询的关键字:");
String keyword = scanner.nextLine();
String line;
boolean found = false;
System.out.println("查询结果:");
while ((line = reader.readLine()) != null) {
if (line.contains(keyword)) {
System.out.println(line);
found = true;
}
}
if (!found) {
System.out.println("未找到匹配的内容");
}
} catch (IOException e) {
System.out.println("查询文件失败:" + e.getMessage());
}
}
private static void modifyFile() {
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH));
BufferedWriter writer = new BufferedWriter(new FileWriter("temp.txt"));
Scanner scanner = new Scanner(System.in)) {
System.out.println("请输入要修改的关键字:");
String keyword = scanner.nextLine();
System.out.println("请输入新内容:");
String newContent = scanner.nextLine();
String line;
boolean modified = false;
while ((line = reader.readLine()) != null) {
if (line.contains(keyword)) {
writer.write(newContent);
modified = true;
} else {
writer.write(line);
}
writer.newLine();
}
if (modified) {
System.out.println("文件修改成功");
} else {
System.out.println("未找到匹配的内容,文件未修改");
}
} catch (IOException e) {
System.out.println("修改文件失败:" + e.getMessage());
}
try {
// 删除原文件并将临时文件重命名为原文件名
java.nio.file.Files.delete(java.nio.file.Paths.get(FILE_PATH));
java.nio.file.Files.move(java.nio.file.Paths.get("temp.txt"), java.nio.file.Paths.get(FILE_PATH));
} catch (IOException e) {
System.out.println("重命名文件失败:" + e.getMessage());
}
}
}
```
这个程序首先提供了一个菜单供用户选择操作,然后根据用户选择执行不同的操作。程序可以读取文本文件的内容并打印到控制台,同时可以将文件复制到一个新的文件中。用户还可以输入关键字来查询文件中包含该关键字的行,并可以修改文件中包含关键字的行。修改文件后,原文件会被删除,临时文件将被重命名为原文件名。
阅读全文
相关推荐

















