JavaI/O(输入/输出)
File类
通过File类可以在程序中操作文件和目录,File能新建、删除、重命名文件和目录,但是不能访问文件内容本身。
理解I/O流
- 流(stream)是从起源(source)到接收(sink)的有序数据。
- Java的I/O流使用了装饰器模式,将I/O流分成底层节点流和上层处理流。
- Java的I/O提供四个抽象基类不能创建实例
- 八位字节流以InputStream和OutputStream为基类
- 十六位的字符流以Reader和Writer为基类
- 方法
- 输入流
- int read()
- int read(byte[] b)
- 输出流
- void write(int c)
- void write(String s)
- 输入流
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FiieTest {
public void readFile()throws IOException {
//创建字节输入流
FileInputStream fis = new FileInputStream("FileTest.java");
//创建取文件的容器
byte[] bbuf = new byte[1024];
//保存实际读取的字节数
int hasRead = 0;
//在容器中循环取字节
while ((hasRead = fis.read(bbuf)) > 0) {
//将字节数组转换成字符串
System.out.println(new String(bbuf, 0, hasRead));
}
//关闭文件流,放在finally块里更安全
fis.close();
}
public void writeFile()throws IOException {
//java7使用try语句保证输入流自动关闭
try (
FileInputStream fis = new FileInputStream("FileTest.java");
FileOutputStream fos = new FileOutputStream("FileTest.txt"))
{
byte[] bbuf = new byte[32];
int hasRead = 0;
while ((hasRead = fis.read(bbuf)) > 0) {
fos.write(bbuf, 0, hasRead);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
处理流
使用处理流操作更简单,执行效率更高
//使用PrintStream处理流包装OutputStream
public void printTest() throws IOException{
try (
FileOutputStream fos = new FileOutputStream("test.txt");
PrintStream ps = new PrintStream(fos)){
ps.println("p普通字符串");
ps.println(new FileTest());
} catch (IOException e) {
e.printStackTrace();
}
}
JavaI/O(输入/输出)的更多相关文章
- 输入/输出系统的四种不同工作方式对CPU利用率比较
程序控制工作方式:输入/输出完全由CPU控制,整个I/O过程中CPU必须等待其完成,因此对CPU的能力限制很大,利用率较低 程序中断工作方式:CPU不再定期查询I/O系统状态,而是当需要I/O处理时再 ...
- JAVA里面的IO流(一)分类1(字节/字符和输入/输出)
java.io包中定义了多个流类型(流或抽象类)来实现输入/输出功能:可以从不同的角度对其进行分类: 按数据流的方向不同可以分为输入流和输出流 从文件读数据为输入流:往文件写数据为输出流 按处理数 ...
- [转]C语言文件输入/输出ACM改进版(freopen函数)
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...
- ubuntu12.04软件中心打开错误和 ubuntu 包管理之“:E: 读错误 - read (5: 输入/输出错误) E: 无法解析或打开软件包的列表或是状态文件。”的解决
执行ubuntu软讲中心时打不开.老是崩溃,从终端也下载不了软件. 执行包管理的update或者search等等会报错: E: 读错误 - read (5: 输入/输出错误) E: 无法解析或打开软件 ...
- A Byte of Python 笔记(10)输入/输出:文件和储存器
第12章 输入/输出 大多数情况下,我们需要程序与用户交互.从用户得到输入,然后打印一些结果. 可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,可以使用多种多样的 s ...
- Python基础学习笔记---5.输入\输出 I\O文件操作目录
在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以分别使用 raw_input 和 print 语句来完成这些功能.对于输出,你也可以使用多种 ...
- rm: 无法删除 "xxxxx.o" : 输入/输出错误.
rm: 无法删除 "xxxxx.o" : 输入/输出错误. 碰到无法删除的文件,以为完蛋了,要重装. 后面重启一下就可以了
- 第15章 I/O(输入/输出)
在变量.数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失.为了能够永久地保存创建的数据,需要将其保存在磁盘文件中,这样就可以在其它程序中使用它们.Java的I/O技术可以将数据保存到文本文件 ...
- Android Multimedia框架总结(二十)MediaCodec状态周期及Codec与输入/输出Buffer过程(附实例)
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53183718 前言:前面几节都是 ...
- 第15章-输入/输出 --- 理解Java的IO流
(一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...
随机推荐
- win10系统进入BIOS
按住shift+重启,在重启过程中界面会出现“疑难解答”,点击后,在新的界面点击“高级选项”,之后在新界面上点击“UEFI固件设置”,最后点击重启,重启过程中点击Delete键,就进入了BIOS界面了 ...
- 删除(unfork)github中某个库(repository)
1.头像->your profile 2.点击某个想要删除的库,出现界面: 3.点击setting,鼠标滚动页面至末尾,出现页面: 4.点击delete this repository: OK!
- 阿里云Centos7 yum安装MySQL5.6
安装mysql5姿势是要先安装带有可用的mysql5系列社区版资源的rpm包 [root@iZ28gvqe4biZ ~]# rpm -Uvh http://dev.mysql.com/get/mysq ...
- 20155228 2016-2017-2 《Java程序设计》第4周学习总结
20155228 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承与多态 继承:在Java中,子类只能继承一个父类,关键字为extends,子类和父类之间 ...
- laravel中使用的PDF扩展包——laravel-dompdf和laravel-snappy
这两天项目中需要将HTML页面转换为PDF文件方便打印,我在网上搜了很多资料.先后尝试了laravel-dompdf和laravel-snappy两种扩展包,个人感觉laravel-snappy比较好 ...
- 20165305 实验二:Java面向对象程序设计
2-1 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 参考http://www.cnblogs.com/rocedu/p/67 ...
- 微信小程序制作家庭记账本之二
第二天,继续学习制作记账本,网上搜寻别人的源码进行学习,但是搜寻过程中总是能看到github这个东西,不清楚这是什么东西,明天继续努力吧.
- Vuejs vm对象详解
Vuejs vm对象详解 vue数据是怎么驱动视图的?一堆数据放在那里是不会有任何作用的,它必须通过我们的View Model(视图模型)才能操控视图. 图中的model其实就是数据,一般我们写成js ...
- Symfony2学习笔记之事件分配器
----EventDispatcher组件使用 简介: 面向对象编程已经在确保代码的可扩展性方面走过了很长一段路.它是通过创建一些责任明确的类,让它们之间变得更加灵活,开发者可以通过继承这 ...
- onclick 常用手册
1.如何去使用onclick来跳转到我们指定的页面/跳转到指定url ☆如果只是在本页显示的话,可以直接用location, 方法如下: ①onclick="javascript:windo ...