java io 文件操作

package com.svse;

import java.io.File;
import java.io.IOException;


public class IOTest {
	public static void main(String[] args){
		File f1 = new File("e:\\test");
		File f2 = new File("empty.docx");
		File f3 = new File("e:\\empty.docx");
		File f4 = new File("d:\\","1.txt");
		delete(new File("e:\\book"));
		try {
			boolean b = f3.createNewFile();//创建文件
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//判断文件是否存在
		System.out.println(f1.exists());
		
		//获取文件的绝对路径
		System.out.println(f2.getAbsolutePath());
		
		//获取文件名
		System.out.println(f3.getName());
		
		//获取父路径
		System.out.println(f1.getParent());
		
		//判断是否是目录
		System.out.println(f1.isDirectory());
		
		//判断是否是文件
		System.out.println(f3.isFile());
		
		//获得文件长度
		System.out.println(f3.length());
		//获得当前文件夹下所有文件和文件夹名称
		String[] s = f1.list();
        for(int i = 0;i < s.length;i++){
        	System.out.println(s[i]);
        }
        //获得文件对象
        File[] f5 = f1.listFiles();
        for(int i = 0;i < f5.length;i++){
            System.out.println(f5[i]);
        }
          
        //创建文件夹   
        File file = new File("e:\\a\\a\\a\\a");
        file.mkdirs();
        
        //修改文件名
        File f7 = new File("e:\\a.txt");
        boolean b2 = f3.renameTo(f7);
        System.out.println(b2);
        
      //设置文件为只读
        f7.setReadOnly();
	}
	
	//查找所有的文件和文件夾
	public static void find(File file){
		System.out.println(file.getName());
		if(file.isDirectory()){
			File[] files = file.listFiles();
			for (int i = 0; i < files.length; i++) {
				find(files[i]);
			}
		}
	}
	//刪除文件和文件下面的文件夾
	public static void delete(File file){
		if(file.isFile()){
			file.delete();
		}else{
			File[] files = file.listFiles();
			for (int i = 0; i < files.length; i++) {
				delete(files[i]);
			}
			file.delete();
		}
	}
	
	
	
	
}

  

package com.svse;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.File;
public class IOTest2 {
	public static void main(String[] args) {
		FileInputStream fis =null;
		FileOutputStream fos = null;
		try {
			//首先创建出一个要读取的文件
			File file = new File("E:\\a1.txt");
			//根据文件来创建出数据流得到对象
			fis = new FileInputStream(file);
			fos = new FileOutputStream("E:/to.txt");
			byte[] buffer = new byte[1024];
			while(true){
				int len= fis.read(buffer, 0, buffer.length);
				if(len==-1){
					break;
				}
				fos.write(buffer, 0, len);
			}
			String str = new String(buffer);
			System.out.println(str.trim());
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				fis.close();
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

  

### 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 操作模式——分别是通过字符流向文件写入文本、借助字节流提取原始二进制信息以及运用高级别的字符流解析具体数值编码。每种方法都有其适用范围,在实际开发过程中可以根据项目特点选择最合适的方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值