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. sqlServer DataReader与DataSet的区别

    sqlServer   DataReader与DataSet的区别 从以下这几个方面比较: 1.与数据库连接: DataReader:面向连接,只读,只进,只能向前读,读完数据就断开连接: DataS ...

  2. ST表略解

    题面 给定一个长度为\(N\)的数列,和\(M\)次询问,求出每一次询问的区间内数字的最大值. 对于30%的数据,满足: \(1≤N,M≤10\) 对于70%的数据,满足: \(1≤N,M≤10^5\ ...

  3. 自定义Cell的流程

    1..h文件 // // 文 件 名:CHBackupGateWayCell.h // // 版权所有:Copyright © 2018 lelight. All rights reserved. / ...

  4. kali linux之DNS,NTP放大攻击

    DNS放大: 产生大流量的攻击方法-----单机的带宽优势,巨大的单机数量形成的流量汇聚,利用协议特性实现放大效果的流量 DNS协议放大效果----查询请求流量小,但响应流量可能非常巨大(dig AN ...

  5. linux+python+robot+jenkins

    1.安装python 安装devtoolset # yum groupinstall “Development tools” 安装编译Python需要的包 # yum -y install zlib- ...

  6. django 部署到Ubuntu安装MYSQL56

    阿里云 Ubuntu 14.04 安装mysql 5.6 1.升级apt-get sudo apt-get update 2. 安装mysql5.6版本 apt-get install mysql-s ...

  7. 自已的sql server练习小记

    print getdate(); print datediff(year,'1987-09-13',getdate()) select * from CallRecords select top 5 ...

  8. python pika简单实现RabbitMQ通信

    Windows上安装及启动RabbitMQ https://blog.csdn.net/hzw19920329/article/details/53156015 安装python pika库 pip ...

  9. OC语法

    ``` int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSString *S= ...

  10. Apache 配置 http 转 https

    <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ Rewr ...