// file 类 文件类, 文件类中保存的不是文件内容!!!!
// file中保存的是文件的描述信息,文件名,路径文件大小, 是否可读取,创建删除 等等
// file 类可以理解为对一个文件的引用
// 如果想获得文件内容,,或者修改,读取文件内容,需要以file 类为目标点,进行IO流操作
// 引的包是 io包
try {
File file1=FileSystemView.getFileSystemView().getHomeDirectory(); //获取各种系统的桌面路径
File f1=new File("C:\\Users\\花花\\Desktop\\1.text");// 全路径
File f2=new File(f1,"1.text"); //父路径(文件夹)+子路径 像网盘项目,用户可以管理文件路径
// 可以做到运营和客户一起管理一个文件,,父路径有项目管理,子路径有客户管理,每个用户账号系统给分配一个固定的父路径
File f3=new File("C:\\Users\\花花\\Desktop\\1.text","1.txt"); //父路径的描述方式不一样。用字符串描述,这样的错误出现概率更高,用file的方式可以先验证文件是否存在,exists
System.out.println(file1.exists());
// file类的方法
//file1.exists() 判断文件是否存在
//file1.createNewFile() 创建一个文件
//file1.delete();
//file1.isFile(); 是否是一个文件。
//file1.isdirectory 是否是一个文件夹
//file1.isHidden(); 是否是隐藏文件
//file1.canExecute(); 是否是 可执行文件
//file1.canRead() ;
//file1.canWrite() ;
// 以上都是布尔类型的判断
//file1.getName();
//file1.getParent(); 获取父类中路径
//file1.getPath(); 获取全路径
//file1.length(); 获取文件大小。占内存大小
//file1.list(); 当他是一个文件夹的时候,打开文件夹,将里面的信息存在一个数组中 ,,,返回一个字符串数组,里面是文件夹下所有(文件,文件夹)的路径
//file1.listFiles(); 当他是一个文件夹的时候,打开文件夹,将里面的信息存在一个数组中 ,,,返回一个file数组,里面是文件夹下所有(文件,文件夹)
public static void main(String[] args) {
// TODO Auto-generated method stub
// 流 分为输出流,输入流 内存为主语
// 流 分为字节流,字符流 字节的长度规格是统一的。 8bit 字符流根据字符集有不一样的长度
// 对于2进制文件,应用字节流
// 对于字符型文件 ,比如说txt 应该用字符流, 因为对字符文件提取时,需要先获得其字符集,每次去多少的倍数,不然可能取出部分字符的信息
// java的流,还有针对各种储存格式的优化类,比如文件的输入输出,针对图片的优化,针对面向对象数据的优化
File f=new File("文件地址");
try {
InputStream in =new FileInputStream(f);
// 1
// int num=0;
// do {
// num=in.read();
// System.out.println(num);
// } while (num!=1);
// 2
// 缓冲区,int接那个值得时候,需要一遍一遍循环,没完没了。出现了缓冲区:
byte[] huanchong =new byte[4096]; //1024*?
while(in.read(huanchong)!=-1){
System.out.println("");//结果会出现一堆数字,和一堆0
}
// 破坏性方法,将传入的参数修改,并且要输出的结果就在参数里(了解即可)
// 3
int num;
while(true){
num=in.read();//给数量或者-1的情况
if(num==-1)break;
byte[] bs=Arrays.copyOf(huanchong, num);
System.out.println(Arrays.toString(bs));
}
// 4
in.close(); //关闭流的方法。
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}