Java面向对象基础–IO系统

一、IO

输入:input
输出:output

Java的IO主要包含三个部分

  • 流式部分:IO的主题部分

  • 非流式部分:主要包含一些辅助流式部分的类

  • 文件读取部分的与安全相关的类以及与本地操作系统相关的文件系统的类

Java中的流操作分为两种:

二、File类

File类对象表示磁盘上的文件或目录。它提供了与平台无关的方法来对磁盘上的文件或目录进行操作。

代码实例如下:

import java.io.File;import java.io.IOException;public class Tset01 {public static void main(String[] args) {File f1 = new File("reba.jpg");File f2 = new File("g:/reba.jpg");File f3 = new File("g:/aa");File f4 = new File("g:/aa/bb");try {//创建文件boolean b1 = f1.createNewFile();boolean b2 = f2.createNewFile();//创建文件夹boolean b3 = f3.mkdir();//创建多个文件夹boolean b4 = f4.mkdirs();if (b1&&b2&&b3&&b4){System.out.println("创建成功!!!");}else {System.out.println("创建失败???");}} catch (IOException e) {e.printStackTrace();}}}1234567891011121314151617181920212223242526272829

运行结果如下: 、、

三、FileInputStream和FileOutputStream

代码实例如下:

//复制图片import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class FileInputStreamDemo {public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;try {fis = new FileInputStream("g:/锁屏/reba.jpg");fos = new FileOutputStream("g:/aa/bb/dlrb.jpg");byte [] b = new byte[1024];int result=0;try {while ((result = fis.read(b))!=-1){fos.write(b,0,result);}} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}finally {try {fis.close();fos.close();} catch (IOException e) {e.printStackTrace();}}}}123456789101112131415161718192021222324252627282930313233343536

运行结果如下:

四、BufferedReader和BufferedWriter

BufferedReader与BufferedWriter实现了自带缓冲区的字符流高效读写,其最小操作单元为一个字符(16位) ,同时,我们也可以自己指定缓冲区的大小,默认的缓冲区有8192个字符,通常情况下已经足够了。

代码实例1如下:

//设置缓冲区复制图片import java.io.*;public class BufferedInputDemo {public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;BufferedInputStream bis = null;BufferedOutputStream bos = null;try {fis = new FileInputStream("g:/锁屏/reba.jpg");bis = new BufferedInputStream(fis);fos = new FileOutputStream("g:/aa/bb/dlrb1.jpg");bos = new BufferedOutputStream(fos);int result = 0;byte [] b = new byte[2048];try {while ((result = bis.read(b))!=-1){bos.write(b,0,result);}} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}finally {try {bos.close();bis.close();fis.close();fos.close();} catch (IOException e) {e.printStackTrace();}}}}1234567891011121314151617181920212223242526272829303132333435363738

运行结果如下:

代码实例2如下:

//带缓冲区的复制import java.io.*;public class BufferedReadDemo {public static void main(String[] args) {BufferedReader br = null;BufferedWriter bw = null;try {br = new BufferedReader(new FileReader("g:/aaa.txt"));try {bw = new BufferedWriter(new FileWriter("g:/aa/bb/aaa.txt"));String temp = null;while ((temp=br.readLine())!=null){bw.write(temp);bw.newLine();}bw.flush();} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}finally {try {bw.close();br.close();} catch (IOException e) {e.printStackTrace();}}}}123456789101112131415161718192021222324252627282930313233

运行结果如下:代码实例3如下:

//使用缓冲区读取控制台输入,写入文件import java.io.*;public class BufferedRead {public static void main(String[] args) {BufferedReader br = null;BufferedWriter bw = null;br = new BufferedReader(new InputStreamReader(System.in));try {bw = new BufferedWriter(new FileWriter("g:/bb.txt"));String temp = null;while ((temp = br.readLine())!=null){if (temp.equals("quit")){break;}bw.write(temp);bw.newLine();}} catch (IOException e) {e.printStackTrace();}finally {try {bw.close();br.close();} catch (IOException e) {e.printStackTrace();}}}}123456789101112131415161718192021222324252627282930

运行结果如下:

五、Java字符集

在JVM内部,统一使用基于Unicode字符集的字符编码

public class EnCoding {public static void main(String[] args) {System.out.println(System.getProperty("file.encoding"));}}12345

运行结果如下:

六、PrinterWriter

PrintWriter类和BufferedWriter-样,也继承自Writer类,它们的大部分功能是一-样的。不同的是,BufferedWriter提供了缓冲区,能提供高效的数据写入,而PrintWriter提供了数据的格式化,例如print(boolean b)、print(char C)、print(double d)及支持任意平台的换行方法println()等等,这使得我们的程序更加自由

import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class PrintWriterDemo {public static void main(String[] args) {//通过包装BufferedWriter创建PrintWriter,文件位置在当前工程根目录//没有启用PrintWriter的自动刷新(flush)功能try {PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("g:/aaa.txt"))) ;pw.print(" PrintWriter演示") ;pw.println() ;pw.println(false) ;pw.println(3.14) ;pw.println(new char[]{'a','哦','e','i','u'});pw.println (new Integer (2009)) ;pw.flush();} catch (IOException e) {e.printStackTrace();}}}1234567891011121314151617181920212223

运行结果如下:

java中sum=a+aa+aaa_Java面向对象基础IO系统相关推荐

  1. Java第五天笔记01——面向对象基础

    目录 1.面向过程和面向对象的编程思想 2.类的定义 3.成员变量.局部变量.静态变量的区别 4.类和对象的关系 5.对象的创建 6.创建对象原理 7.垃圾回收机制 8.构造方法 9.Java包 10 ...

  2. 在java中班级的表示方法_Java基础班学习笔记(8)

    1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java 如何 ...

  3. java中sum是什么_Java中的IntStream sum()方法

    sum()Java中使用IntStream类的方法返回此流中元素的总和. 语法如下-int sum() 要使用Java中的IntStream类,请导入以下包-import java.util.stre ...

  4. Java中执行存储过程和函数(web基础学习笔记十四)

    一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableS ...

  5. java中的io复用_从 Java 中的零拷贝到五种IO模型

    在之前的文章中,我们聊过了 Java 中的零拷贝,零拷贝就是指数据不会在内核空间和用户空间之间相互拷贝.这样就减少了内核态与用户态的切换,自然就很高效. 拷贝文件只是 IO 操作中一个特殊的情况,大多 ...

  6. java中collection框架应用示例:学生选课系统

    java中集合框架概述 collection集合框架存储对象,有多个接口list,queue,set.他们对应的重要实现类分别是ArrayList,LinkedList,HashSet 定义类图 pu ...

  7. java类中定义索引器,C#面向对象基础——字段、属性和索引器

    关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...

  8. Java中sum和Sum相同吗,Java认为变量Sum 和sum相同。

    Java认为变量Sum 和sum相同. 更多相关问题 下面( )字常用作表示顺序的第五位. 动力CAN总线总的终端电阻值约为60Ω.( ) 印刷术发明后,刻字用的雕刻刀对汉字的形体发生了深刻的影响,产 ...

  9. java中的多线程来看一看基础了

    一  引言 : 进程是一个正在执行中的程序,每个进程执行都有一个执行顺序,或执行路径: 线程是进程中的内容,是进程中独立的控制单元: 线程控制着进程的执行,或者是一个控制单元: 一个进程中至少有一个线 ...

最新文章

  1. python import变量_Python import模块调用
  2. 华为2288H V5服务器 RAID操作
  3. 微信iOS版更新:可批量管理不常联系的朋友
  4. 吴恩达深度学习笔记4-Course1-Week4【深层神经网络】
  5. LSTM里的dropout
  6. 女大学生两块钱成功进外企
  7. SonarQube 规则的挂起与激活
  8. Pandas Series interpolate
  9. 【工具】FormatUtil.ava 常用工具类
  10. JAVA基础编程——数据库编程
  11. PCL XL error Subsystem:KERNEL
  12. 计算机大作业的范本,计算机应用基础大作业.doc
  13. 程序员微信名昵称_推荐几个高逼格的微信昵称?
  14. 《小强升职记》读书笔记
  15. ct上的img表示什么_X线/CT/MR影像片子上的标识你是否都认识?
  16. c语言编程gps卫星坐标计算公式,C语言计算GPS卫星位置演示教学.doc
  17. iOS中AppTrackingTransparency(ATT)设置方法和注意事项
  18. android 电池20 提醒,当日修冷知识:滴咚!为啥手机电量低于20%就会自动提醒?...
  19. 1到n中能被3和7整除的数的和
  20. 计算机视觉之卷积神经网络原理

热门文章

  1. LDD3学习之short
  2. vsftpd的配置文件路径,是在哪里指定的?
  3. cannot resolve symbol r_64位ret2_dl_runtime_resolve模版题以及踩坑记录
  4. java 一组数据中偏差较大的数据_深入分析数据结构中的队列(java代码实现)
  5. datagridview cell字体大小自适应_CELL:肿瘤为何“饿不死”?神经元为饥饿胰腺癌提供营养支持...
  6. java note项目_note(java)
  7. 破拆机器人_中国首台车载式遥控折叠装卸机器人横空出世
  8. dos配置java_windows dos命令配置JAVA环境变量
  9. vuex结合php,vuex中store的使用介绍(附实例)
  10. k8s mysql volume_Kubernetes(k8s)中文文档 名词解释 Volumes_Kubernetes中文社区