(1)创建文件,写入文件 ①接收到控制台输入的文件名 ②在某盘符下创建指定名称的文件 ③接收控制台内容,使用字节流写入文件 (2)读取盘符下所有的.txt(.TXT)文件和文件夹分别装入集合,遍历集合 ①读取文件列表 ②找出所有.txt(或.TXT)文件名放入 ArrayList 集合中 ③找到所有的文件夹,将文件夹名放入 HashSet 集合中 ④遍历 ArrayList 集合输出结果 ⑤使用迭代器遍历 HashSet 集合输出结果 (3)读取文件,删除文件 ①接收控制台输入的 txt 格式的文件名 ②使用缓冲字符流读取文件相关操作 ③文件中内容能正确输出到控制台 ④ 删除文件
时间: 2024-02-11 11:09:19 浏览: 94
好的,您的第一个问题是关于文件操作的。以下是我的回答:
(1)创建文件,写入文件:
首先,我们需要从控制台输入文件名,然后使用该文件名在某个盘符下创建文件。接下来,我们将使用字节流将控制台输入的内容写入文件中。下面是一个示例代码:
```
import java.io.*;
public class FileOperation {
public static void main(String[] args) {
// 接收控制台输入的文件名
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = "";
try {
fileName = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
// 在某个盘符下创建指定名称的文件
String filePath = "D:\\" + fileName;
File file = new File(filePath);
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
// 接收控制台内容,使用字节流写入文件
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filePath);
byte[] buffer = new byte[1024];
int len;
while ((len = System.in.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
(2)读取盘符下所有的.txt(.TXT)文件和文件夹分别装入集合,遍历集合:
首先,我们需要找到某个盘符下的所有文件和文件夹。然后,我们可以将所有.txt(.TXT)文件名放入ArrayList集合中,将所有文件夹名放入HashSet集合中。最后,我们可以使用迭代器遍历这两个集合并输出结果。以下是一个示例代码:
```
import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class FileOperation {
public static void main(String[] args) {
// 读取盘符下所有.txt(.TXT)文件和文件夹
String path = "D:\\";
File file = new File(path);
File[] files = file.listFiles();
ArrayList<String> txtFiles = new ArrayList<String>();
HashSet<String> folderNames = new HashSet<String>();
for (File f : files) {
if (f.isFile() && (f.getName().endsWith(".txt") || f.getName().endsWith(".TXT"))) {
txtFiles.add(f.getName());
} else if (f.isDirectory()) {
folderNames.add(f.getName());
}
}
// 遍历ArrayList集合输出结果
Iterator<String> txtFileIterator = txtFiles.iterator();
while (txtFileIterator.hasNext()) {
System.out.println(txtFileIterator.next());
}
// 使用迭代器遍历HashSet集合输出结果
Iterator<String> folderNameIterator = folderNames.iterator();
while (folderNameIterator.hasNext()) {
System.out.println(folderNameIterator.next());
}
}
}
```
(3)读取文件,删除文件:
首先,我们需要从控制台输入txt格式的文件名。然后,我们使用缓冲字符流读取该文件并输出文件内容。最后,我们可以使用File类的delete方法删除该文件。以下是一个示例代码:
```
import java.io.*;
public class FileOperation {
public static void main(String[] args) {
// 接收控制台输入的txt格式的文件名
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = "";
try {
fileName = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
// 使用缓冲字符流读取文件相关操作
String filePath = "D:\\" + fileName;
File file = new File(filePath);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 删除文件
if (file.delete()) {
System.out.println("文件已删除!");
} else {
System.out.println("文件删除失败!");
}
}
}
```
希望这些代码能够帮助您!
阅读全文