import java.io.*;
import java.util.*;
public class FileInputStreamExample {
public static void main(String[] args){
String path = "D:"+File.separator+"a"+File.separator+"测试.txt";
try {
inputStreamTest(path);
} catch (NullPointerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 对InputStream做测试
* @param fileName 文件的抽象路径
* @throws NullPointerException
* @throws IOException
*/
public static void inputStreamTest(String fileName) throws NullPointerException,IOException{
if(fileName == null){
throw new NullPointerException("fileName is null....");
}
File file = new File(fileName);
//判断文件是否存在
if(file.exists()){
//文件是否可执行
System.out.println(file.canExecute());
//文件是否可读
System.out.println(file.canRead());
//文件是否可写
System.out.println(file.canWrite());
//文件是否是目录
System.out.println(file.isDirectory());
//文件是否是文件
System.out.println(file.isFile());
//获取文件绝对路径
System.out.println(file.getAbsolutePath());
//获取文件规范路径名字符串
System.out.println(file.getCanonicalPath());
//获取文件分区未分配的字节数
System.out.println(file.getFreeSpace());
//获取文件名称
System.out.println(file.getName());
//获取文件上级目录
System.out.println(file.getParent());
//获取文件分区 named的大小
System.out.println(file.getTotalSpace());
//获取文件最后一次修改时间
System.out.println(new Date(file.lastModified()));
//获取文件的字节长度
System.out.println(file.length());
//通过字节输入流得到数据(读取文件最好用字节输入流,因文件中可能存在图片等数据,用字符流会产生字节丢失)
InputStream inputStream = new FileInputStream(file);
//创建一个字节缓冲区,因一个一个字节读取会造成文件读取很慢,利用缓冲读取一段字节在显示,这里是将一次性读完整个文件到缓存区
byte[] buff = new byte[(int)file.length()];
//读取数据
inputStream.read(buff);
//因输出到控制台,可能文件中如有图片等数据将二进制输出或乱码
System.out.println(new String(buff,"UTF-8"));
//关闭输入流
inputStream.close();
}else{
throw new NullPointerException(fileName+"文件不存在!");
}
}
}
Java基础 InputStream输入流
最新推荐文章于 2024-08-03 09:18:28 发布