I/O流复制文本
package io; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
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;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; public class IO流 { /**
* @param args
*/
public static void main(String[] args) {
bufferedWR(); } private static void show(File file) {
File[] fileList = file.listFiles();
for (File f : fileList) {
if (f.isFile()) {
if (f.getName().endsWith(".txt"))
System.out.println(f.getName());
} else {
show(f);
}
}
} private static void delete(File file) {
File[] fileList = file.listFiles();
for (File f : fileList) {
if (f.isFile()) {
f.delete();
} else {
delete(f);
}
}
file.delete();
} /**
* 抽象类 字节流 读取 InputStream 字节流 输出 OutputStream
*
* 字符流 读取 Reader 字符流 输出 Writer
*
* 实现类 BateArrayOutputStream FileOutputStream OutputStream FileOutputStream
* 构造方法 FileOutputStream(File file) FileOutputStream(String path)
*
* @throws
*/ // 字符串写入文件
/**
* 追加写入 FileOutputStream fos = new FileOutputStream("a.txt",true); 换行 \r\n
*/
public static void strToFile() {
// 创建字节输出流对象
String str = "hello";
try {
// File file = new File("D:\\a.txt");
// FileOutputStream fs = new FileOutputStream(file);
FileOutputStream fos = new FileOutputStream("a.txt", true);
fos.write("hello \r\nhello".getBytes()); fos.close();
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 读取文件内容,输出到控制台
*/
public static void readFromFile() {
File file = new File("a.txt");
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read()) != -1) {
System.out.print((char) len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} /**
* 复制文本文件 从a.txt 到 b.txt
*
*/
public static void copyByte() {
try {
FileInputStream is = new FileInputStream("a.txt");
FileOutputStream os = new FileOutputStream("b.txt");
int len = 0;
byte[] bys = new byte[1024];
while ((len = is.read(bys)) != -1) {
os.write(bys, 0, len);
}
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
} finally { }
} /**
* BufferedOutputStream 缓冲输出
*/
public static void bufferedOutputDemo() {
try {
FileOutputStream fos = new FileOutputStream("a.txt");
FileInputStream fis = new FileInputStream("b.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
BufferedInputStream bis = new BufferedInputStream(fis);
int len = 0;
byte[] bys = new byte[1024];
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bos.close();
fos.close();
} catch (Exception e) { e.printStackTrace();
}
} /**
* OutputStreamWriter(file,character) 是转换流 字节+编码方式
*
* InputStreamWriter(file,character) 是转换流 字节+编码方式
*
* flush()方法 刷新缓冲
*/ /**
* 字符流复制文件
*/
public static void copyZiFULiu() {
try {
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream("a.txt"));
InputStreamReader oiw = new InputStreamReader(new FileInputStream(
"c.txt"));
int len = 0;
char[] b = new char[1024];
while ((len = oiw.read(b)) != -1) {
osw.write(b, 0, len);
osw.flush();
}
osw.close();
oiw.close();
} catch (Exception e) {
e.printStackTrace();
}
} /**
* FileWriter = FileOutputStream + 编码 FileReader = FileInputStream + 编码
*/
public static void copyRW() {
try {
FileReader reader = new FileReader("a.txt");
FileWriter writer = new FileWriter("d.txt");
int len = 0;
char[] c = new char[1024];
while ((len = reader.read(c)) != -1) {
writer.write(c, 0, len);
writer.flush(); }
writer.close();
reader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* BufferedWriter(Writer out)
* BufferedReader(Reader read)
* 字符缓冲流的特殊方法:
* newLine():根据系统来决定换行符
* readLine(): 一次读取一行数据
*/
public static void bufferedWR(){
try {
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("e.txt")));
BufferedWriter bw = new BufferedWriter(new FileWriter("e.txt"));
// BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
// int len = 0;
String s = null;
char[] c = new char[1024];
while((s= (br.readLine()))!= null){
// bw.write(c,0,len);
// bw.flush();
bw.write(s);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
} catch (Exception e) {
e.printStackTrace();
} }
}
I/O流复制文本的更多相关文章
- java IO流复制图片
一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...
- postgres配置主从流复制
postgres主从流复制 postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据.postgres的主从看过一个视频,大概效率为3w多事务qps. ...
- ZeroClipboard – 轻松实现复制文本到剪贴板功能
ZeroClipboard 库提供了一种把文本复制到剪贴板的简单方法.Zero 表示该库是不可见的,用户界面则完全取决于你. 该库完全兼容 Flash Player 10.0.0 或以上版本,这就要求 ...
- Clipboard.js – 现代方式实现复制文本到剪贴板
复制文本到剪贴板应该并不难,目前已经有很成熟的 Flash 方法.但是 Flash 已经在很多场合不适用了,特别是随着 HTML5 技术的发展.今天推荐的这个 Clipboard.js 库不依赖 Fl ...
- Oracle 流复制实践笔记
最近因为业务需求,需要在两个数据库之间做双向实时同步,遂实践了一把Oracle的流复制,遇到了很多疑难问题,最终也貌似成功,现记录如下. 我是使用OEM来实现流复制的. 10.进行流复制的两个数据库的 ...
- [原创] PostgreSQL Plus Advanced Server在Windows中配置双机热备流复制
一.系统环境 操作系统:Windows Server 2003/2008 两个节点分别为master与slave. 主节点master:172.27.19.28 备机点slave:172.27.19. ...
- jQuery按钮复制文本内容
这种方法能保证文本内容被复制到windows剪切板,代码示例是复制url <!doctype html> <html> <head> <meta charse ...
- 剪切板 复制文本 ClipboardManager
代码 public class MainActivity extends ListActivity { private EditText tv_info; private Clipbo ...
- Java IO 嵌套流、文本的输入输出和存储
Java IO 嵌套流.文本的输入输出和存储 @author ixenos 1. 组合流过滤器(嵌套流) a) 跨平台文件分割符:常量字符串 java.io.File.seperator 等 ...
随机推荐
- 定时器timer类
timer类 Timer(定时器)是Thread的派生类,用于在指定时间后调用一个方法. 构造方法: Timer(interval, function, args=[], kwargs={}) in ...
- 如何修改git显示的用户名
我是这样试了一下,可以改: 输入修改用户名和邮箱: $git config --global user.email "tanteng@gmail.com" $git config ...
- 【bzoj2140】: 稳定婚姻 图论-tarjan
[bzoj2140]: 稳定婚姻 哎..都是模板题.. 一眼看过去 哇 二分图哎 然后发现好像并不能匈牙利算法 自己xjb画两张图,发现二分图左向右连配偶的边,然后右向左连交往过的边 然后如果Bi G ...
- 封装的一个sorted_vector示例,实现了stl::set的一部分接口
STL set能保证最坏情况下的查找和插入效率,logN.但是维护红黑树开销较大.set内的元素按照一定的逻辑顺序组织,查找.插入等操作的结果都和排序规则有关. 适合STL ...
- 一款给力的一键复制js插件-clipboard.js
一款没有依赖的.给力的一键复制的JS插件 点我前往github 案例demo见下载包内demo文件夹. 这里晒出最常用的几种方式,以供不时之需. <!DOCTYPE html> < ...
- 好用的在线HTML、CSS工具
css3剪贴路径(clip-path)在线生成工具:http://tools.jb51.net/static/api/css3path/index.html json在线解析:https://www. ...
- 远程诊断DoIP
目录 远程诊断DoIP Part 1: General information and use case definition DoIP诊断网络架构 诊断连接场景 DoIP之通信建立 DoIP中的一些 ...
- Qt 学习之路 2(31):贪吃蛇游戏(1)
Qt 学习之路 2(31):贪吃蛇游戏(1) 豆子 2012年12月18日 Qt 学习之路 2 41条评论 经过前面一段时间的学习,我们已经了解到有关 Qt 相当多的知识.现在,我们将把前面所讲过的知 ...
- 移动端适配1px问题
(function(document) { var dcl = document.documentElement, wh; var scale = 1/window.devicePixelRatio; ...
- python学习之路---day19--面向对象--约束
约束和异常一:约束: 约束方法:(解释:就相当于在想项目中,先提前规划好框架和约定基本代码,像定义好调用的名字后,后面的名字只能用这个,用其他的 名字就会抛出异常.错误) 1:提取父类,然后再父类中定 ...