java的输入和输出程序的编写_Java语言程序设计

Java (3) 2024-09-30 11:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
java的输入和输出程序的编写_Java语言程序设计,希望能够帮助你!!!。

IO(输入/输出)是所有程序都必须的部分。输入机制:允许程序读取外部数据(包括来自磁盘、光盘等存储设备的数据)、用户输入数据;输出机制:允许程序记录运行状态,将程序数据输出到磁盘、光盘等存储设备中。

Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可分为字节流和字符流两大类。其中字节流以字节为单位来处理输入、输出操作,而字符流则以字符来处理输入、输出操作。

11.1 File类

File是java.io包下代表与平台无关的文件和目录,则程序中操作文件和目录,都可以通过File类来完成。File能新建、删除、重命名文件和目录。File不能访问文件内容本身,如果访问文件内容本身,则需要使用输入/输出流。

11.1.1 访问文件和目录

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++;

}

}

11.2 Java的IO流

Java的IO流是实现输入/输出的基础,它可以方便的实现数据的输入/输出操作,Java把所有传统的流类型都放在java.io包中,用以实现输入/输出功能。

11.2.1 流的分类

1、输入流和输出流

按照流向来分,可以分为输入流和输出流

Ø 输入流:只能从中读取数据,而不能向其写入数据;基本上是从磁盘文件到系统内存。

Ø 输出流:只能向其写入数据,而不能从中读取数据;基本上是从系统内存到磁盘文件。

Java的输入流主要由InputStream和Reader作为基类,而输出流则主要由OutputStream和Writer作为基类。他们都是一些抽象基类,能直接创建实例对象。

2、字节流与字符流

字节流和字符流的用法几乎一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的数据单元是8位的字节,而字符流操作的数据单元是16位的字符。

字节流主要由InputStream和OutStream作为基类,字符流主要由Reader和Writer作为基类。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复