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流复制文本的更多相关文章

  1. java IO流复制图片

    一.使用字节流复制图片 //字节流方法 public static void copyFile()throws IOException { //1.获取目标路径 //(1)可以通过字符串 // Str ...

  2. postgres配置主从流复制

    postgres主从流复制 postgres在9.0之后引入了主从的流复制机制,所谓流复制,就是从库通过tcp流从主库中同步相应的数据.postgres的主从看过一个视频,大概效率为3w多事务qps. ...

  3. ZeroClipboard – 轻松实现复制文本到剪贴板功能

    ZeroClipboard 库提供了一种把文本复制到剪贴板的简单方法.Zero 表示该库是不可见的,用户界面则完全取决于你. 该库完全兼容 Flash Player 10.0.0 或以上版本,这就要求 ...

  4. Clipboard.js – 现代方式实现复制文本到剪贴板

    复制文本到剪贴板应该并不难,目前已经有很成熟的 Flash 方法.但是 Flash 已经在很多场合不适用了,特别是随着 HTML5 技术的发展.今天推荐的这个 Clipboard.js 库不依赖 Fl ...

  5. Oracle 流复制实践笔记

    最近因为业务需求,需要在两个数据库之间做双向实时同步,遂实践了一把Oracle的流复制,遇到了很多疑难问题,最终也貌似成功,现记录如下. 我是使用OEM来实现流复制的. 10.进行流复制的两个数据库的 ...

  6. [原创] PostgreSQL Plus Advanced Server在Windows中配置双机热备流复制

    一.系统环境 操作系统:Windows Server 2003/2008 两个节点分别为master与slave. 主节点master:172.27.19.28 备机点slave:172.27.19. ...

  7. jQuery按钮复制文本内容

    这种方法能保证文本内容被复制到windows剪切板,代码示例是复制url <!doctype html> <html> <head> <meta charse ...

  8. 剪切板 复制文本 ClipboardManager

    代码 public class MainActivity extends ListActivity {     private EditText tv_info;     private Clipbo ...

  9. Java IO 嵌套流、文本的输入输出和存储

    Java IO 嵌套流.文本的输入输出和存储 @author ixenos 1.   组合流过滤器(嵌套流) a)    跨平台文件分割符:常量字符串 java.io.File.seperator 等 ...

随机推荐

  1. linux 建议锁和强制锁

    作为APUE 14.3节的参考 linux是有强制锁的,但是默认不开启.想让linux支持强制性锁,不但在mount的时候需要加上-o mand,而且对要加锁的文件也需要设置相关权限. .       ...

  2. Linux解压工具

    指令 yum  install lrzsz

  3. atp

    一. 新建atp目录,该目录下包含bin(存放启动程序等).config(存放配置程序).lib(存放过程程序).logs(存放生成的日志).cases(存放用例的excel文件)五个目录,并新建一个 ...

  4. 【转】在Win10家庭版中启用组策略

    源地址:https://www.baidu.com/link?url=tZrD7LVxQEKQUTWUum86LoxyaxWNLs5BeBE2K36TliRi8sjGraKc-iP3TEm6sc_KX ...

  5. request payload

    最近在调试代码时发现有Request Payload的情况,从网上查一些文件,也都有较多的描述.下面我只是说明一下大家没有注意的地方 关于HTTP请求,都是通过URL及参数向后台发送数据.主要方式有G ...

  6. Python如何在子类里扩展父类的property?

    <python cookbook>8.8节讨论子类扩展property时,一开始都晕了,思考了半天才勉强弄懂一点,赶快记下来.废话不多说,先上代码: class Person: def _ ...

  7. 谈谈easyui datagrid 的数据加载

    文章目录 1url方式加载数据 1.1调用方式 1.2相关方法 1.3二次加载问题 2加载本地数据方式 2.1调用方式 2.2如何分页 2.3加载中效果 2.4如何不统计总数 这篇文章只谈jQuery ...

  8. [SDOi2012]Longge的问题 BZOJ2705 数学

    题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...

  9. Day 4 上午

    内容提要 进制转换 高精度 数论:筛法,gcd/exgcd,逆元 进制转换 10=2^3+2^0=1010(2)10=3^2+3^0=101(3) 10进制x-->k进制:短除法 k进制x--& ...

  10. PyCharm激活码问题

    1.打开激活窗口 2.选择 Activate new license with License server (用license server 激活) 3.在 License sever addres ...