java IO 文件操作

本文介绍了Java中使用File类进行文件操作的方法,包括创建、删除文件和目录,以及如何使用FilenameFilter进行文件过滤。

/*
java 文件操作
java中文件操作的类是 File类 可以实现对文件的创建删除 修改等
File类 在 java.io包中
下面是 通过 java.io.File类实现对文件操作
File类没有提供对文件的读写方法
*/


import java.io.*; //导入io包
class Test
{
public static void main(String []args) throws Exception //直接吧所有异常抛出给 JVM虚拟机
{
//一个File类对象代表一个文件或者目录
//File.seperator 表示 当前盘符与系统相关的抽象目录 或者一个\ /
File dir=new File(File.separator +"newDir"); //在当前路径下创建一个目录
dir.mkdir(); //创建目录

File file1=new File(dir,"1.txt"); //在 newDir目录下创建1.txt这是 构造函数的重载形式 dir是父目录
file1.createNewFile() ;//在dir目录下创建一个新文件


File file2=new File("d:\\2.txt"); //直接用绝对路径创建
file2.createNewFile(); //创建文件


/*在运行的时候生成文件在推出的时候删除文件*/
/*File fRun=new File("d:\\fRun.txt");
fRun.createNewFile() ; //create
fRun.deleteOnExit() ;//这个文件会在程序推出的时候删除掉
Thread.sleep(3000);
*/


/* java创建临时文件 并且删除临时文件 */
int count =0;
while(count++<10)
{
File ftemp=File.createTempFile("xiaowei",".tmp") ; //创建临时文件 File类静态方法
ftemp.deleteOnExit();//在退出程序的时候删除临时文件
//临时文件目录在 系统变量的temp
}


/*
查看一个目录下所有文件个目录 并且进行过滤
*/
File fileter=new File(File.separator); //代表当前目录 我是D盘
String []name=fileter.list();//获得当前目录下的多有文件目录名字
System.out.println("未加滤镜");
for(int i=0;i<name.length;i++)
System.out.println(name[i]);
System.out.println("\n\n加滤后");

String []fname=fileter.list(new FilenameFilter() //这里传递的是一个匿名的内部类因为接口不能直接实例对象
{
public boolean accept(File dir, String name)
{
return name.indexOf("txt")!=-1;//不是txt返回 false 是txt返回 true
}
}
) ;//通过滤镜获得文件目录名 传递一个 FilenameFilter接口实现对象 这里是匿名

for(int i=0;i<fname.length;i++)
System.out.println(fname[i]);





}

}

### Java IO 文件读写操作概述 Java 提供了丰富的输入/输出(Input/Output,简称 I/O)功能来处理文件和其他数据源。通过 `java.io` 包中的类可以实现文件的读取和写入操作。以下是基于不同需求的一些典型示例。 --- #### 字符流写入文件 使用字符流可以通过 `FileWriter` 类向文件中写入字符串内容。下面是一个完整的代码示例: ```java import java.io.FileWriter; import java.io.IOException; public class FileWriterExample { public static void main(String[] args) { String data = "Hello, Java I/O with FileWriter!"; try (FileWriter writer = new FileWriter("example2.txt")) { writer.write(data); System.out.println("文件写入成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码展示了如何利用 `FileWriter` 将指定的数据写入到名为 `example2.txt` 的文件中[^1]。 --- #### 字节流读取文件 如果需要逐字节地从文件中读取数据,则可以使用 `FileInputStream` 类完成此任务。以下是一段典型的代码片段: ```java import java.io.FileInputStream; import java.io.IOException; public class FileInputStreamExample { public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("example.txt")) { int content; while ((content = fis.read()) != -1) { System.out.print((char) content); } } catch (IOException e) { e.printStackTrace(); } } } ``` 该程序会打开名为 `example.txt` 的文件,并将其内容逐一打印至控制台[^2]。 --- #### 使用 Reader 进行更灵活的字符读取 对于某些场景下可能希望以十六进制形式展示 ASCII 值的情况,可采用如下方式实现: ```java import java.io.Reader; import java.io.FileReader; import java.io.IOException; public class IoDemo9 { public static void main(String[] args) throws IOException { try (Reader reader = new FileReader("D:/test.txt")) { while (true) { int n = reader.read(); if (n == -1) { break; } System.out.printf("%x\n", n); } } } } ``` 这段代码能够将来自路径 `"D:/test.txt"` 中的所有字符转换为其对应的 ASCII 十六进制表示并显示出来[^3]。 --- ### 总结 以上分别介绍了三种常见的 Java IO 操作模式——分别是通过字符流向文件写入文本、借助字节流提取原始二进制信息以及运用高级别的字符流解析具体数值编码。每种方法都有其适用范围,在实际开发过程中可以根据项目特点选择最合适的方案。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值