【I/O】常见输入输出
缓冲输入文件、输出文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter; public class Test {
public static void main(String[] args) throws IOException{
BufferedReader input = new BufferedReader(new FileReader("D:/test.txt"));
PrintWriter output=new PrintWriter(new BufferedWriter(new FileWriter("D:/test_copy.txt")));
String s;
while((s=input.readLine())!=null){
output.print(s); //readLine()取出文件的一行内容时,是将换行符是删除了的。
}
input.close();
output.close(); //缓冲区可能仍有内容,不要忘记正确的关闭它。
}
}
从内存中读入(将一个string通过StringReader读入)
import java.io.IOException;
import java.io.StringReader; public class Test {
public static void main(String[] args) throws IOException{
StringReader input = new StringReader("这是一个字符串");
int c;
while((c=input.read())!=-1){
System.out.println((char)c); //read()返回的一个int形式,必须类型转换为char才能正确打印。
}
input.close();
}
}
格式化的内存输入,此时需要用到面向字节的I/O类(InputStream)
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException; public class Test {
public static void main(String[] args) throws IOException{
DataInputStream input = new DataInputStream(new ByteArrayInputStream("This".getBytes()));
while(input.available()!=0){ //判断是否还有剩余的字节。(由于是一个个字节读取,故所有字节都是合法的结果,因此返回值不能用来检测输入是否结束,我们只能使用available判断是否读取完毕。
System.out.println((char)input.readByte()); //readBytes一次次读入一个字节。还有类似的readChar/readFloat/readDouble/readInt等
}
}
}
使用DataInputStream来存储和恢复数据
DataInputStream/DataOutputStream可以确保我们读取数据一致(无论平台有多么不同)。这一点是非常重要的。缺点就是我们必须知道流中数据项所在的确切位置。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class Test {
public static void main(String[] args) throws IOException{
DataOutputStream output=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("test.txt")));
output.writeDouble(3.1415926535);
output.writeUTF("使用UTF编码");
output.writeInt(123);
output.close(); DataInputStream input=new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt")));
System.out.println(input.readDouble());
System.out.println(input.readUTF());
System.out.println(input.readInt());
input.close();
}
}
读写随机访问文件
【I/O】常见输入输出的更多相关文章
- java学习笔记--1_常见输入输出语句熟悉篇章
今天上oj,想来是准备做做算法和数据结构的.看了看以前做的基础题目,想着就先熟悉一下java的语言吧! 以下是今天做的10道题目. 备注:oj有时候对格式要求非常严格,因为不在格式上纠结太久,只要ec ...
- Hadoop 之面试题
颜色区别: 蓝色:hive,橙色:Hbase.黑色hadoop 请简述hadoop怎样实现二级排序. 你认为用Java,Streaming,pipe 方式开发map/reduce,各有哪些优缺点: 6 ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- Atitit常见的标准化组织与规范数量jcp ecma iso
Atitit常见的标准化组织与规范数量jcp ecma iso 1. 常见的标准化组织1 1.1. 重要的基金会apache1 1.2. 美国国家标准学会(American NationalStand ...
- java中常见的几种Runtimeexception
转自http://blog.csdn.net/qq635785620/article/details/7781026 一般面试中java Exception(runtimeException )是必会 ...
- Java基础常见英语词汇
Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的 ['prəʊɡræmɪŋ]编程 OO: object ...
- python补充最常见的内置函数
最常见的内置函数是: print("Hello World!") 数学运算 abs(-5) # 取绝对值,也就是5 round(2. ...
- 常见的几种RuntimeException
一般面试中java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求.更多的....需要注意积累了 常见的几种如下: NullPoi ...
- C语言初学者代码中的常见错误与瑕疵(5)
问题: 素数 在世博园某信息通信馆中,游客可利用手机等终端参与互动小游戏,与虚拟人物Kr. Kong 进行猜数比赛. 当屏幕出现一个整数X时,若你能比Kr. Kong更快的发出最接近它的素数答案,你将 ...
随机推荐
- scrapy 相关
Spider类的一些自定制 # Spider类 自定义 起始解析器 def start_requests(self): for url in self.start_urls: yield Reques ...
- 为什么要使用自增ID作为主键
1.从业务上来说 在设计数据库时不需要费尽心思去考虑设置哪个字段为主键.然后是这些字段只是理论上是唯一的,例如使用图书编号为主键,这个图书编号只是理论上来说是唯一的,但实践中可能会出现重复的 情况.所 ...
- AderTemplate
http://www.cnblogs.com/kwklover/archive/2007/07/12/815509.html 概述 AderTemplate是一个小型的模板引擎.无论是拿来直接使用还是 ...
- JavaScript------如何查看var变量是否是指定类型
function isArray(a) { //Date,Array,String,Object,Function,Boolean,Number return a.constructor.toStri ...
- python中pip工具的安装与使用
1.在网址https://pip.pypa.io/en/latest/installing 下载get-pip.py文件,放在python更目录,如python3.6目录下 2.在dos命令行中进入g ...
- cmake window下 sh.exe was found in your PATH, here
在window下 mingw环境下 用 camke 编译Cpp程序 CMake Error at D:/Program Files/CMake/share/cmake-3.8/Modules/CMak ...
- 高德地图 js api 使用
使用高德地图js api 制作网页上的地图应用. 1.先申请一个 开发者用的 key . 2. 在页面中引入高德提供的地图js <script src="http://webapi. ...
- <2014 05 09> 程序员:从C++转到Java需注意的地方
最近想玩玩Android的APP开发,从C++角度来学习Java.Java可以说是一个优化精简版的C++,去除了底层C的很多特性.找了这篇文章. --------------------------- ...
- 为什么要使用nonlocal
Python3中加入了新的关键字nonlocal,当在一个嵌套的函数中对变量申明为nonlocal时,就明确表示这个变量是外部函数中定义的变量.也许会有这么一个问题:按照python的LEGB原则,在 ...
- django--admin模型层
django amdin是django提供的一个后台管理页面,改管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,而使用django admin ...