Java中IO的简单举例
package com.kale.io; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; /**
* @author:Jack Tony
* @date :2014-10-12
*/
public class IOTest { public static void main(String[] args) {
//String str = byteRead();
//byteWrite(str); //String readStr = fileReader();
//fileWriter(readStr); //readerWriter(); //bufferedReader();
} /**
* 字节流写入
* @param result
*/
public static void byteWrite(String result) {
FileOutputStream fos = null;
try {
//将字符串写入到硬盘的一个文件中,这里请确保文件存在
File file = new File("d:/to.txt");
if(!file.exists()) {
file.createNewFile();
}
//通过文件来建立流
fos = new FileOutputStream(file);
//将字符串转换为byte数组,一次性写入
fos.write(result.getBytes()); } catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
fos.flush();
fos.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} }
} /**
* 字节流读出
* @return
*/
public static String byteRead() {
FileInputStream fis = null;
//存放读取结果的String对象
String result = "";
try {
//通过文件来建立一个流,文件不存在则出现异常
fis = new FileInputStream(new File("d:/from.txt"));
//fis读取必须要用到byte[],所以要建立一个byte来存放字节流。这样就可以从文件中一点点读取了
byte []buffer = new byte[1024*3];
//每次读取字节的实际数目
int n = 0;
//每次读取一个buffer长度,存到buffer中,直到没有读取到字节
while((n = fis.read(buffer, 0, buffer.length)) > 0) {
result += new String(buffer,0,n);
}
System.out.println("【"+result.trim()+"】"); } catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
fis.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
return result;
} /**
* 通过fileReader来进行读取字符流
* @return
*/
public static String fileReader() {
String result = "";
FileReader fr = null;
try {
fr = new FileReader(new File("d:/reader.txt"));
//通过这个数组来做缓冲区,一点一点的读入到程序中
char []c = new char[2];
//实际读取的字符个数
int n = 0;
//循环读取,直到文件的末尾
while((n = fr.read(c)) != -1) {
result += new String(c,0,n);
}
System.out.println("【"+result+"】");
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
fr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
return result;
} /**
* 将字符流写入到文件中
* @param str
*/
public static void fileWriter(String str) {
FileWriter fw = null;
try {
fw = new FileWriter(new File("d:/writer.txt"));
//将字符串一次性的写入到文件中
fw.write(str);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
fw.flush();
fw.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} }
} /**
* 一点一点读,并且将读出来的东西写入到另一个文件中
*/
public static void readerWriter() {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader(new File("d:/reader.txt"));
//第二个参数为true时,表示追加写入
fw = new FileWriter(new File("d:/writer.txt"),true);
//建立缓冲区
char []c = new char[2];
//实际读取的字符的个数
int n = 0;
//一点一点读出字符,放到char数组中,直到末尾
while((n = fr.read(c)) != -1) {
//将char数组中的字符写入文件中
fw.write(c, 0, n);
}
System.out.println("写入成功!");
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
fw.flush();
fw.close();
fr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
} /**
* 通过BufferedReader来一行一行读取
* @return 如果正常则返回字符串,如果出错返回null
*/
public static String bufferedReader() {
String result = null;
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader("d:/reader.txt");
//将File进行包装,可以一行一行的读取了
br = new BufferedReader(fr);
String line = null;//定义读取一行字符后存储的String对象
//用这个来暂时存放string对象
StringBuilder sb = new StringBuilder("");
//一行一行读取,读取的东西每次存放到line中
while((line = br.readLine()) != null){
//result += line;
sb.append(line);//将读取的每一行补到StringBuilder后面
}
result = sb.toString().trim();
System.out.println("【"+result+"】");
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
finally {
try {
br.close();
fr.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
return result;
} }
Java中IO的简单举例的更多相关文章
- java中数据流的简单介绍
java中的I/O操作主要是基于数据流进行操作的,数据流表示了字符或者字节的流动序列. java.io是数据流操作的主要软件包 java.nio是对块传输进行的支持 数据流基本概念 “流是磁盘或其它外 ...
- JAVA中IO总结
JAVA中IO流主要分为两大类: 字节流:InputStream+OutputStream 字符流:Reader+Writer 字节流: InputStream是所有字节输入流的父类 OutputSt ...
- Java中IO流的总结
有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...
- 多线程(三) java中线程的简单使用
java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依 ...
- java 中 IO 流分为几种?(未完成)
java 中 IO 流分为几种?(未完成)
- JAVA中IO流总结
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42119261 我想你对JAVA的IO流有所了解,平时使用的 ...
- JAVA中IO技术:BIO、NIO、AIO
1.同步异步.阻塞非阻塞概念 同步和异步是针对应用程序和内核的交互而言的. 阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作 ...
- JAVA中IO和NIO的详解分析,内容来自网络和自己总结
用一个例子来阐释: 一辆客车上有10个乘客,他们的目的地各不相同,当没有售票员的时候,司机就需要不断的询问每一站是否有乘客需要下车,需要则停下,不需要则继续开车,这种就是阻塞的方式. 当有售票员的时候 ...
- Java中IO流中的装饰设计模式(BufferReader的原理)
本文粗略的介绍下JavaIO的整体框架,重在解释BufferReader/BufferWriter的演变过程和原理(对应的设计模式) 一.JavaIO的简介 流按操作数据分为两种:字节流与字符流. 流 ...
随机推荐
- Java 日期时间获取和显示
Java正确获取星期Calendar.DAY_OF_WEEKhttp://chamcon.iteye.com/blog/2144433 Java SimpleDateFormat 中英文时间格式化转换 ...
- 解决RabbitMQ service is already present - only up...
C:\Users\Administrator>rabbitmq-service install RabbitMQ service is already present - only updati ...
- 【LOJ】#2080. 「JSOI2016」病毒感染
题解 那个限制表示一回头要治完前面的所有病人 我们处理一个g[i][j]表示治疗i到j的病人至少会死多少病人 \(g[i][j] = g[i + 1][j] + sum[i + 1,j] + min( ...
- 【noip模拟赛3】确定的位置 (map的遍历 位置原理)
描述 hzy很喜欢了解歌曲的排行榜,他每次都从XX网站获知. 由于这个网站想对这个歌曲的排行榜含蓄的告诉大家,组织了一个“猜榜大赛”. 这个网站宣布一些歌曲的信息,那些歌曲在歌曲榜上的前几名 例如: ...
- 040 DataFrame中的write与read编程
一:SparkSQL支持的外部数据源 1.支持情况 2.External LIbraries 不是内嵌的,看起来不支持. 但是现在已经有很多开源插件,可以进行支持. 3.参考材料 · 支持的格式:ht ...
- java中父类和子类初始化顺序
顺序 1. 父类中静态成员变量和静态代码块 2. 子类中静态成员变量和静态代码块 3. 父类中普通成员变量和代码块,父类的构造函数 4. 子类中普通成员变量和代码块,子类的构造函数 其中“和”字两端的 ...
- 009.Zabbix幻灯片展示
一 Slide shows简介 Slide shows在多个Screens之间以幻灯片的方式来展示,使一个屏幕可以显示多个页面. 二 Slide shows配置 2.1 创建多个Screen Slid ...
- java json和对象互相装换
java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper
- Redis集群主从复制(一主两从)搭建配置教程【Windows环境】
如何学会在合适的场景使用合适的技术方案,这值得思考. 由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基 ...
- UOJ.26.[IOI2014]Game(交互 思路)
题目链接 \(Description\) 有一张\(n\)个点的图.M每次询问\((u,v)\),你需要回答图中\((u,v)\)间是否有边.如果M可以用\(<n(n-1)/2\)次询问确定图中 ...