博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java - IO
阅读量:7222 次
发布时间:2019-06-29

本文共 2135 字,大约阅读时间需要 7 分钟。

Java IO分为两部分:1. 对屏幕和键盘输入输出操作;2. 对文件进行输入输出操作。

Java中有字符流和字节流两种。字符流就是对字符进行操作,字节流就是对字节进行操作。

一般以Reader/Writer结尾的,都是字符流操作单位;以Stream结尾的,都是字节流操作单位。

字符流经我们常用到的基本单位是FileWriter和FileReader,字节流用到的基本单位是FileInputStream和FileOutputStream。其构造函数都可以接收文件名。但一般我们不会用它们直接进行IO操作。我们会将它们嵌套入PrintWriter,Scanner,BufferedReader/Writer/InputStream/OutputStream中用。

 

对屏幕进行输入输出

1.对屏幕进行输出:

System.out.println("Hello, World");

2.对键盘进行输入:Scanner

String s=null;//读取一串字符,以空格为分界s=input.next();//读取一行s=input.nextLine();//读取一个整型变量int a=input.nextInt();//连续读取;**注意此处会连续读取,永远不会停,需要设置条件停止循环**while(input.hasNextLine()){    s=input.nextLine();    //此处需要设置中断while的条件语句        }

对文件进行输入输出

1.对文件进行IO操作,不要求效率的情况下用PrintWriter和Scanner:

try{        PrintWriter out=new PrintWriter(new FileOutputStream("a.txt",true));    //true,表示在原文件后追加内容;此处不用true,则会覆盖原文件    out.println("Hello World!");    out.close();    Scanner in=new Scanner(new FileInputStream("a.txt"));    while(in.hasNext()){        System.out.println(in.nextLine());    }    in.close();}catch(IOException e){    System.out.println(e.getMessage());}

2.对文件进行IO操作,要求效率的话用:BufferedReader/BufferedWriter/BufferedInputStream/BufferedOutputStream。因为这些对象用到了缓存,减少IO的读写次数,所以效率更高。

BufferedReader/BufferedWriter:

try {       BufferedWriter out=new BufferedWriter(new FileWriter("a.txt"));    BufferedReader in=new BufferedReader(new FileReader("a.txt"));        //输出字符流    out.write("Hello,World!");    out.close();    //读取字符流    String s=in.readLine();    System.out.println(s);    in.close();} catch (IOException e) {    e.printStackTrace();}

BufferedInputStream/BufferedOutputStream:

try {    BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream("a.txt"));    BufferedInputStream in=new BufferedInputStream(new FileInputStream("a.txt"));                String s="Hello, World!";    byte[] a=s.getBytes();    //输出字节流    out.write(a);    out.close();                File f=new File("a.txt");    byte[] b=new byte[(int)f.length()];    //读取字节流    in.read(b);    in.close();    System.out.println(new String(b));            } catch (IOException e) {    e.printStackTrace();}

 

转载于:https://www.cnblogs.com/ze7777/p/7226838.html

你可能感兴趣的文章
POJ 2104(K-th Number-区间第k大-主席树)
查看>>
HDOJ 2689
查看>>
[置顶] js综合应用:表格的四则运算
查看>>
SQLServer 2008 :error 40 出现连接错误
查看>>
VS2013 单元测试(使用VS2013自带的单元测试)
查看>>
git add --all 为啥不能添加空文件夹,这样设计的初衷是
查看>>
Linux find/grep命令
查看>>
【数据结构与算法】(二) c 语言链表的简单操作
查看>>
线程相关参数
查看>>
改造 Android 官方架构组件 ViewModel
查看>>
贾跃亭被指拿恒大的投资款告投资人 总费用超2000万
查看>>
春运守护者 大陆首批台湾籍乘务长黄佳莹
查看>>
潮汕明代皇封御葬古墓受损追踪:当地相关部门介入
查看>>
使用js操作checkbox
查看>>
分享阿里云服务器系列之弹性裸金属服务器
查看>>
Merge k Sorted Lists@LeetCode
查看>>
Hibernate-ORM:15.Hibernate中的Criteria查询
查看>>
Flask從入門到入土(五)——Flask与数据库
查看>>
手动删除木马程序
查看>>
Ebistrategy亦策软件提升天天果园管理效率
查看>>