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的简介 流按操作数据分为两种:字节流与字符流. 流 ...
随机推荐
- 最小二乘法 及python 实现
参考 最小二乘法小结 机器学习:Python 中如何使用最小二乘法 什么是” 最小二乘法” 呢 定义:最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳 ...
- 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇
sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...
- 【Java】快速排序的非递归实现
快速排序一般采用递归方法(详见快速排序及其优化),但递归方法一般都可以用循环代替.本文实现了java版的非递归快速排序. 更多:数据结构与算法合集 思路分析 采用非递归的方法,首先要想到栈的使用,通过 ...
- Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文. ...
- UML用例图之间的关系
在画用例图的时候,理清用例之间的关系是重点.用例的关系有泛化(generalization).扩展(extend)和包含(include).其中include和extend最易混淆.下面我们结合实例彻 ...
- Android-RemoteView-桌面小部件
Android-RemoteView-桌面小部件 学习自 <Android开发艺术探索> https://developer.android.google.cn/guide/topics/ ...
- javascript相关基础
1.javascript:void(0) javascript:void(0)表示不做任何动作 Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值. <a hr ...
- lvs+keepalived 02
LVS keepalived 高可用负载均衡 环境 IP HOSTNAME Describe 192.168.100.30 lvs01 主负载 192.168.100.31 lvs02 备负载 192 ...
- Codeforces Round #258 (Div. 2) E. Devu and Flowers 容斥
E. Devu and Flowers 题目连接: http://codeforces.com/contest/451/problem/E Description Devu wants to deco ...
- oracle 树型结构数据的查询
Oracle中start by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 con ...