io 基本概念

it2024-08-09  64

1.输入流,输出流

输入流:将数据读到程序中。

输出流:将程序中的数据输出到外设或文件中。

 

2. 缓存存在于cpu中,速度快慢如下:

缓存>内存>硬盘

 

3.InputStream、OutputStream

InputStream:不关心数据源来自何种设备。

OutputStream:不关心数据的目的地是何种设备。

 

4 数据流分类:

流序列中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。因此Java中的流分为两种:  1)  字节流:数据流中最小的数据单元是字节  2)  字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。   5. 标准输入,输出数据流

java系统自带的标准数据流:java.lang.System:复制代码 代码如下:

java.lang.System public final class System extends Object{   static PrintStream err;//标准错误流(输出)   static InputStream in;//标准输入(键盘输入流)   static PrintStream out;//标准输出流(显示器输出流) }

注意:(1)System类不能创建对象,只能直接使用它的三个静态成员。(2)每当main方法被执行时,就自动生成上述三个对象。

6.  标准输入流 System.in

System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘),其数 据类型为InputStream。方法:

int read() //返回ASCII码。若,返回值=-1,说明没有读取到任何字节读取工作结束。int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数。

package com.xuzhiwen.io; import java.io.IOException; import java.io.InputStream; public class SystemTest { public static void main(String[] args) throws IOException { System.out.println("please input:"); InputStream input = System.in; int i; while((i=input.read()) != -1){ System.out.print((char)i); } } }

运行结果:

7. System.out.println()

print(Object)和println(Object)方法在运行时将调 用参数Object的toString方法。

 

8. 创建缓冲区逐行读入数据

package com.xuzhiwen.io; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class InputStreamReaderTest { public static void main(String[] args) throws IOException { InputStreamReader read = new InputStreamReader(System.in); BufferedReader bf = new BufferedReader(read); String str = bf.readLine(); while(str != null){ System.out.println(str); str = bf.readLine(); } read.close(); bf.close(); } }

运行结果如下:

9.Java中的主要IO类:

主要的类如下:

     1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

     2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

     3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

  Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。

     4. Reader(文件格式操作):抽象类,基于字符的输入操作。

     5. Writer(文件格式操作):抽象类,基于字符的输出操作。

     6. RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作

 

10.体系结构图:

 

 11. 判断文件是否存在

package com.xuzhiwen.io; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { String separator = File.separator; File file = new File("E:"+separator+"filetest"+separator+"test.txt"); if(file.exists()){ file.delete(); }else{ file.createNewFile(); } } }

12. 删除文件夹本身及文件夹中的所有文件

package com.xuzhiwen.io; import java.io.File; public class DeleteAllFile { private static boolean delAllFile(File file){ if(!file.exists()){ System.out.println("文件或目录不存在!"); return false; } if(file.isDirectory()){ String arr[] = file.list(); for (String s : arr) { boolean success = delAllFile(new File(file,s)); if(!success){ return false; } } } return file.delete(); } public static void main(String[] args) { String separator = File.separator; File file = new File("E:"+separator+"filetest"+separator+"11.txt"); boolean success = delAllFile(file); if(success){ System.out.println("del success"); }else{ System.out.println("del fail"); } } }

 

转载于:https://www.cnblogs.com/beibidewomen/p/7357621.html

最新回复(0)