Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
java的输入和输出程序的编写_Java语言程序设计,希望能够帮助你!!!。
IO(输入/输出)是所有程序都必须的部分。输入机制:允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据)、用户输入数据;输出机制:允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中。
Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。
File是java.io包下代表与平台无关的文件和目录,则程序中操作文件和目录,都可以通过File类来完成。File能新建、删除、重命名文件和目录。File不能访问文件内容本身,如果访问文件内容本身,则需要使用输入/输出流。
File类可以使用文件路径字符串来创建File实例,该文件路径字符串既可以是绝对路径,也可以是相对路径。在默认情况下,系统总是依据用户的工作路径来解释相对路径。
创建File对象后,可以调用File对象的方法来访问。
常用的方法如下:
1、访问文件名相关的方法
Ø String getName():返回此文件对象所表示的文件名或路径名。
Ø String getPath():返回此File对象所对应的路径名。
Ø File getAbsoluteFile():返回此File对象所对应的绝对路径指向的File对象。
Ø String getAbsolutePath():返回此File对象所对应的绝对路径。
Ø String getParent():返回此File对象所对应的目录的父目录,以工作路径为准,如果已经在工作路径的根目录下,则返回null,否则返回父目录。
Ø boolean renameTo(File newName):重命名此File对象所对应的文件或目录,成功返回true,否则返回false。
2、文件检测相关的方法
Ø boolean exists():判断File对象所对应的文件或目录是否存在。
Ø boolean canWrite():判断File对象所对应的文件和目录是否可写。
Ø boolean canRead():判断File对象所对应的文件和目录是否可读。
Ø boolean isFile():判断File对象所对应的是否是文件。
Ø boolean isDirectory():判断File对象所对应的是否是目录。
Ø boolean isAbsolute():判断File对象所对应的文件或目录是否绝对路径。例如:如果在Unix/Linux等系统上,如果路径名的开头是/,则表明File对象对应一个绝对路径,在Windows等系统上,如果路径开头是盘符,则说明它是一个绝对路径。
1、 获取常规文件信息
Ø long lastModified():返回文件的最后修改时间。
Ø long length():返回文件内容的长度。
2、 文件操作相关的方法
Ø boolean createNewFile():当此File对象对应的文件不存在时,创建一个该File对象所对应的文件,创建成功返回true,否则返回false。
Ø boolean delete():删除File对象所在的文件或路径。注意:当使用这个方法时,如果是删除的一个文件夹,文件夹中有内容时文件夹不会被删除,如果是个空文件夹则可以删除成功。
3、 目录操作相关的方法
Ø boolean mkdir():创建一个File对象所对应的目录,创建的是目录而不是文件。注意:这个方法,如果父级目录不存在时,则子目录无法创建。
Ø boolean mkdirs():创建一个File对象所对应的所有目录,如果上级目录不存在,会同时将上级目录创建出来。
Ø File[] listFile():列出File对象的所有子文件和路径,返回File数组。
Ø Static File[] listRoots():列出系统所有根路径。
举例1:
publicstaticvoid main(String[] args) throws Exception {
File file = new File("./abc/aaa");
//返回文件的文件名或路径名
System.out.println(file.getName());
//返回文件所在的相对目录
System.out.println(file.getPath());
//返回文件所在的绝对目录
System.out.println(file.getAbsolutePath());
//返回文件对象的父目录
System.out.println(file.getParent());
//判断文件是否存在
if(!file.exists()){
//连同不存在的父级目录一同创建出来
file.mkdirs();
}
System.out.println(file.canWrite());
System.out.println(file.canRead());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
file = new File("./abc/aa.txt");
if(!file.exists()){
file.createNewFile();
}
//判断文件是否是绝对路径
System.out.println(file.isAbsolute());
file = new File(file.getParent());
File[] files = file.listFiles();
for(File fi : files){
System.out.println(fi.getName());
}
}
题目1:
根据一个目录,把该目录下所有的文件以及文件夹全部删除。
public static void delFile(File filePath){
File[] files = filePath.listFiles();
for(int i=0;i<files.length;i++){
File f= files[i];
if(f.isFile()){
f.delete();
}else{
Test.delFile(files[i]);
}
}
filePath.delete();
}
题目2:
根据一个目录,把目录中文件的个数找出来,再把目录中超过1M的文件找出来,看有几个。
private int mbNum = 0;
private int fileNum = 0;
public void findFile(String filePath){
File file = new File(filepath);
this.dealFile(file);
System.out.println(mbNum+fileNum);
}
private void dealFile(File file);
File[] files = file.listFiles();
for(File f:files){
if(f.isDirectory()){
this.dealFile(f);
}else{
if(f.length()>1024*1024){
mbNum++;
}
fileNum++;
}
}
Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作,Java把所有传统的流类型都放在java.io包中,用以实现输入/输出功能。
1、输入流和输出流
按照流向来分,可以分为输入流和输出流
Ø 输入流:只能从中读取数据,而不能向其写入数据;基本上是从磁盘文件到系统内存。
Ø 输出流:只能向其写入数据,而不能从中读取数据;基本上是从系统内存到磁盘文件。
Java的输入流主要由InputStream和Reader作为基类,而输出流则主要由OutputStream和Writer作为基类。他们都是一些抽象基类,能直接创建实例对象。
2、字节流与字符流
字节流和字符流的用法几乎一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的数据单元是8位的字节,而字符流操作的数据单元是16位的字符。
字节流主要由InputStream和OutStream作为基类,字符流主要由Reader和Writer作为基类。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。