I/O常用方法以及小案例

代码中有注释可以查看

文件操作

package com.biu.demo02IO;

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

//文件操作:创建文件、查看文件相关信息、删除文件
public class FileDemo {
	public static void main(String[] args) {
		FileDemo fileDemo = new FileDemo();
		File file = new File("d:/test.txt");
		//File file = new File("test.txt");//如果没有给出绝对路径,则会在此项目下创建。
		fileDemo.create(file);
		fileDemo.showFileInfo(file);
		//fileDemo.delete(file);
	}
	
	//创建文件
	public void create(File file) {
		if(!file.exists()) {
			try {
				file.createNewFile();//创建文件,不创建文件夹
				System.out.println("文件已经创建。");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	
	//查看文件相关信息
	public void showFileInfo(File file) {
		if(file.exists()) {
			//如果文件存在,则查看文件信息
			if(file.isFile()) {
				//是文件
				System.out.println("该文件是:" + file.getName());
				System.out.println("该文件的相对路径是:" + file.getPath());
				System.out.println("该文件的绝对路径是:" + file.getAbsolutePath());
				System.out.println("该文件的文件大小是:" + file.length() + "字节");//一个汉字俩字节
			}else if (file.isDirectory()) {
				System.out.println("此文件是目录。");
			}
		}else {
			System.out.println("文件不存在。");
		}
	}
	
	//删除文件
	public void delete(File file) {
		if(file.exists()) {
			file.delete();
			System.out.println("文件已经删除。");
		}
	}
	
}

输入流

package com.biu.demo02IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//读取文件d:\test.txt中的内容
public class FileInputStreamDemo {
	public static void main(String[] args) {
		FileInputStream fis = null;
		try {
			//输入流FileInputStream
			fis = new FileInputStream("d:/test.txt");
			System.out.println("可以读取到的字节数是:" + fis.available());
			//借助输入流的方法read()去读文件
//			int data;
//			while ((data=fis.read()) != -1) {
//				System.out.print((char)data);//需要将整数强转为字符
//			}
			byte[] b = new byte[1024];
			int data;
			while ((data=fis.read(b)) != -1) {
//				for(int i=0; i<b.length; i++) {
//					if(b[i]!=0) {
//						System.out.print((char)b[i]);
//					}
//				}
				for(int i=0; i<data;i++) {//此时data为已经读取的字节数,可以以此作为长度
					System.out.print((char)b[i]);//仍需要强转为字符型
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				//关闭输入流
				fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

输出流

package com.biu.demo02IO;

import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//对文件d:\test.txt进行写入
public class FileOutputStreamDemo {
	public static void main(String[] args) {
		FileOutputStream fos = null;
		try {
			//输出流FileOutputStream
			fos = new FileOutputStream("d:/test.txt");
			String str = "FileOutputStreamDemo";
			//将字符串打散为一个字节数组
			byte[] words = str.getBytes();
			fos.write(words, 0, words.length);
			System.out.println("文件已被写入");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				//关闭输入流
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

输入输出复制小案例

package com.biu.demo02IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

//将d:\hi.txt中的内容复制到d:\hello.txt中
public class InputAndOutputDemo {
	public static void main(String[] args) {
		FileInputStream fis = null;
		FileOutputStream fos = null;
		try {
			fis = new FileInputStream("d:/hi.txt");
			fos = new FileOutputStream("d:\\hello.txt", true);
			byte[] words = new byte[1024];
			int len = -1;
			while ((len = fis.read(words)) != -1) {
				fos.write(words, 0, len);
			}
			System.out.println("文件复制完成。");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				fos.close();
				fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值