JAVA的输入输出是以程序为标准,如文件/内存/键盘读入数据到程序,简称输入,
程序将数据读出到文件/内存/控制台,简称输出
文件定义是相关记录或放在一起的数据的集合,一般存储在硬盘,CD等移动盘中
JAVA会通过java.io.File包调用访问文件属性
mkdir 仅创建一级目录
mkdirs 创造多级目录,开发中一般用mkdirs()
如父级目录可达,可以直接用createNewFile()创建文件,也可以用mkdir()来创建目录
如果父级目录不存在,需要先用getParentFile()获取父级File对象,用父级对象.mkdirs可以递归创建全部的父级目录

File类解决的是文件或者是文件夹的路径问题
构造的File类对象表示一个路径,指向目标文件或文件夹。
File path = new File("."); 表示当前目录
File path = new File("E:\\Java"); 表示E盘里的Java文件(或者是文件夹),注意要用双斜线\\。
操作:增删改查
增:createNewFile(),mkdir(),mkdirs()
删:delete(),deleteOnExit()
改:renameTo()
查:getPath(),getName(),getAbsolutePath(),getParentFile(),getParentPath(),list(),listFiles()
写方法:只要传路径,就能把路径下的所有文件都打印出来
public void listFileNames(String path){
File f=new File(path);
if(!f.exist()) return;
if(f.isFile()){ sout(path); return;}
File[] children=f.listFiles();
if(children==null||children.length==0) return;
for(File fl:children){
listFileName(f1.getPath());
}
File与list方法:
list()方法存储的是文件名,它会返回一个字符数组,将指定路径下的文件或文件夹名字存储到String数组中。因为其返回的是一个String类型的数组,所以它也就只是一个名字而已
有以下两种重载方式:
1)、String[] list()
2)、String[] list(FilenameFilter filter)
listFiles()方法存储的是文件的完整路径,因此在遍历文件夹以及子文件夹中所有文件时必须使用listFiles()方法,返回的是一个File类的引用,它具有类的所有属性和方法,比如:String getName()方法就能够返回该文件的String类型的文件名(名字而已)
public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录
listFiles在获取指定目录下的文件或者文件夹时必须满足下面两个条件
1,指定的目录必须存在
2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException异常
ublic class TestIO {
public static String readFile(String Path) throws IOException {
FileInputStream fis=new FileInputStream(Path);
StringBuilder sb=new StringBuilder();
int tmp;
while((tmp=fis.read())!=-1){
sb.append((char)tmp);
}
fis.close();
return sb.toString();
}
public static String readFileByte(String Path) throws IOException {
FileInputStream fis = new FileInputStream(Path);
byte[] b=new byte[fis.available()];//available代表流当中有多少可读的字节
fis.read(b);
fis.close();
return new String(b);
}
public static void main(String[] args) throws IOException {
//FileInputStream fis=new FileInputStream("a.txt");//路径名构造法
//File f=new File("a.txt");
//FileInputStream fis=new FileInputStream(f);//对象构造法
//for(int i=0;i<f.length();i++){
//int read = fis.read();//一次只能读一个int
//System.out.print((char) read);
//int tmp;
//while((tmp=fis.read())!=-1){
//System.out.print((char) tmp);
String s=readFile("a.txt");
System.out.println(s);
String y=readFileByte("a.txt");
System.out.println(s);
}
}
未抛出异常的处理方法

基础流
文件字节流 FileInputStream FileOutoutStream
文件字符流 FileReader FileWriter
转换流 InputStreamReader OutputStreamWriter
缓冲流 BufferedReader BufferedWriter
二进制流 DataInputStream DataOutputStream
对象流 ObjectInputStream ObjectOutputStream
高级流
ObjectOutputStream将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象
ObjectInputStream也是一个高级流,对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
本文详细讲解了JAVA中File类的使用,涉及路径操作、增删改查方法,以及File与list方法的区别。还介绍了基础流、高级流和不同类库的运用,如FileInputStream、FileWriter和ObjectInputStream。
1220

被折叠的 条评论
为什么被折叠?



