Java语言中IO的总结

一、输入与输出的概念

  是指程序与外部设备或其他计算机进行交互的操作;

  Java把这些输入与输出操作用流来实现,通过统一的接口来表示,从而使程序设计更为简单;

  入还是出是相对于内存来说的;

  把数据读到内存中,称为输入,即input,进行数据的read操作;

  从内存往外部设备写数据,称为输出,即output,进行数据的write操作。

二、File类

  1、File类的概念

     File类是java.io包中很重要的一个类;

     File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;

     File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;

     File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作。

  2、File的构造方法..

     File类的构造方法有4种重载方式,常用的如下:

  如://在当前目录下创建一个与aaa.txt文件名相关联的文件对象

    File f1 = new File("aaa.txt");

    //指明详细的路径以及文件名,请注意双斜线或用反斜杠

     File f2 = new File("D:\\Java\\Hello.java");

     //指明详细的路径以及目录名,请注意双斜线

     File f3 = new File("D:\\Java");

三、输入流与输出流

  1、流按着数据的传输方向分为:

  -输入流:往内存中读叫输入流;

  -输出流:从内存中往外写叫输出流。

  2、所有输入流都是InputStream类或者Reader类的子类

  -类名以InputStream结尾的类都是InputStream的子类;

  -类名以Reader结尾的类都是Reader类的子类。

  3、所有输出流都是OutputStream类或者Writer类的子类

  -类名以OutputStream结尾的类都是OutputStream的子类;

  -类名以Writer结尾的类都是Writer类的子类。

四、字节流与字符流.

  1、从数据流编码格式上划分为

  -字节流

  -字符流

  2、InputStream和OutputStream的子类都是字节流

  -可以读写二进制文件,主要处理音频、图片、歌曲、字节流,处理单元为1个字节。

  3、Reader和Writer的子类都是字符流

  -主要处理字符或字符串,字符流处理单元为2个字节;

  -字节流将读取到的字节数据,去指定的编码表中获取对应文字。

  4、字节流中常用类

  -字节输入流 FileInputStream

  -字节输出流 FileOutputStream

  5、字符流中常用类

  -字符输入流 FileReader

  -字符输出流 FileWriter

五、字节流与字符流的转换

  1、转换流的由来

  -字符流与字节流之间的桥梁

  -方便了字符流与字节流之间的操作

  2、转换流的应用

  -字节流中的数据都是字符时,转成字符流操作更高效

  3、字节流转换成字符流的桥梁

    -InputStreamReader

    InputStreamReader(InputStream in)

    InputStreamReader(InputStream in, String charsetName)

    -OutputStreamWriter

    OutputStreamWriter(OutputStream out)

    OutputStreamWriter(OutputStream out, String charsetName)

     它读入字节,并根据指定的编码方式,将之转换为字符流。

      使用的编码方式可能由名称指定,或平台可接受的缺省编码方式。

六、scanner类

  Scanner类位于java.util包中,不在java.io包中,不属于IO流

  Scanner是一个工具类,主要目标是简化文本的扫描,最常使用此类获取控制台输入

  Scanner获取控制台输入的步骤

  1、使用控制台输入创建Scanner对象

  Scanner  scanner=new  Scanner(System.in);

  2、调用Scanner中的nextXXX方法,获得需要的数据类型

  例如:next、 nextLine、nextInt、nextByte等。

    

  

  

时间: 2024-08-14 09:17:16

Java语言中IO的总结的相关文章

Java语言中IO流的操作规律学习笔记

1,明确源和目的. 数据源:就是需要读取,可以使用两个体系:InputStream.Reader: 数据汇:就是需要写入,可以使用两个体系:OutputStream.Writer: 总结: 读:就是把数据读入内存 写:就是把数据读出来 2,操作的数据是否是纯文本数据? 如果是:数据源:Reader 数据汇:Writer 如果不是:数据源:InputStream 数据汇:OutputStream 总结:纯文字的东西用字节流,其他用字节流 3,虽然确定了一个体系,但是该体系中有太多的对象,到底用哪个

Java语言中String累的总结

String类 1.Java.lang包简介 java.lang包是java内置的一个基础包,其中包含了一系列程序中经常要用到的类: 在默认情况下,每个java程序都会自动导入该包,因此无需在程序中显式地声明. 2.String类 Java语言中,字符串是String类的对象: Java语言中,String是引用数据类型: 可以通过使用String类提供的方法来完成对字符串的操作: 创建一个字符串对象之后,将不能更改构成字符串的字符: 每当更改了字符串版本时,就创建了一个新的字符串对象,并在其内

java语言中的varargs

java语言中的varargs允许调用者传递数量不定的参数,并传入的数量不定的实参转化为数组形式的形参. 那么不传递任何参数,或者传入null时,形参的值是什么呢?下面是测试代码和运行结果: 1 private void test1(int... args) { 2 if (args != null) { 3 System.out.println("[test1] args.length = " + args.length); 4 } else { 5 System.out.print

javascript中模拟实现java语言中的map

//javascript中模拟实现java语言中的map 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script type="text/javascript"> //private var obj={};//空的对象容器,用于承装键值对 function Map() { //put方法 th

Java语言中extend和implement的区别

Java语言并不支持多重继承,而只能继承一个类,不过我们可以使用implements来实现多个接口. extends继承的父类:不能声明为final或者定义为abstract: implements实现接口interface,用逗号分开就好: 如:class A extends B implements C, D, E interface的引入是为了部分地提供多继承的功能. 在interface中只需声明方法头,而将方法体留给实现的class来做. 这些实现的class的实例完全可以当作inte

Java语言中Object对象的hashCode()取值的底层算法是怎样实现的?

Java语言中,Object对象有个特殊的方法:hashcode(), hashcode()表示的是JVM虚拟机为这个Object对象分配的一个int类型的数值,JVM会使用对象的hashcode值来提高对HashMap.Hashtable哈希表存取对象的使用效率. 关于Object对象的hashCode()返回值,网上对它就是一个简单的描述:"JVM根据某种策略生成的",那么这种策略到底是什么呢?我有一个毛病,遇到这种含糊其辞的东西,就想探个究竟,所以,本文就将hashCode()本

浅谈Java语言中try{}catch{}和finally{}的执行顺序问题

浅谈Java语言中try{}catch{}和finally{}的执行顺序问题 2019-04-06  PM  13:41:46  1. 不管有没有出现异常,finally块中代码都会执行: 2. 当try和catch中有return时,finally仍然会执行: 3. finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的:

Java语言中:float、double数据类型在内存中是如何存储的

引用参考 https://www.cnblogs.com/chenmingjun/p/8415464.html#4291528 https://blog.csdn.net/yansmile1/article/details/70145416 java语言中,float类型数字在计算机中用4个字节(32位)来存储.double类型占用8个字节(64位). 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储

Java语言中的Class类

基本概念 在Object类中定义了以下的方法,此方法将被所有子类继承 public final Class getClass() 这个方法的返回值类型是一个Class类,此类是Java反射的源头,是实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称. 对象照镜子后可以得到的信息:某个类的属性.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE都为其保留一个不变的Class类型的对象.一个Class对象包含了特定某个结构(class.interface.en