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. OO 面向对象的三大特性

    面向对象的三大特性 一.面向对象特性——封装: 概念:把对象所能操作的信息进行封装: 封装作用: 1.减少代码之间的耦合: 2.提供统一的访问接口,内部修改不影响外部的调用:(开放封闭原则) 二.面向 ...

  2. 「BZOJ 5188」「Usaco2018 Jan」MooTube

    题目链接 luogu bzoj \(Describe\) 有一个\(n\)个节点的树,边有权值,定义两个节点之间的距离为两点之间的路径上的最小边权 给你\(Q\)个询问,问你与点\(v\)的距离大于等 ...

  3. Timer(定时器)

    默认情况下,在每个采样器之前没有任何延时,这样不能很好的模拟现实生活中人们访问网页,因为现实生活中人们点击一个请求后,会有一定的时间,然后再点击下一个请求,JMeter提供了定时器来模拟这种行为. 定 ...

  4. 864. Shortest Path to Get All Keys

    We are given a 2-dimensional grid. "." is an empty cell, "#" is a wall, "@& ...

  5. 查看linux操作系统的版本等信息

    1.查看操作系统是32位还是64位的命令: (1)getconf LONG_BIT (2)uname -a (3)uname -m (4)arch (5)file /sbin/init 2.查看操作系 ...

  6. Django + Gunicorn + Nginx 部署 Ubuntu 服务器

    Django + Gunicorn + Nginx 部署服务器 获取腾讯云 root权限 本人的服务器使用的是腾讯云,腾讯云默认是没有开放 root 用户的,我们来创建 root 用户. 创建 roo ...

  7. 从pg_hba.conf文件谈谈postgresql的连接认证

    最近一直在弄postgresql的东西,搭建postgresql数据库集群环境什么的.操作数据库少不得要从远程主机访问数据库环境,例如数据库管理员的远程管理数据库,远程的客户存取数据库文件. 而在po ...

  8. P2252 取石子游戏 威佐夫博弈

    $ \color{#0066ff}{ 题目描述 }$ 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆 ...

  9. 图像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空间、DoG (Difference of Gaussian)角点检测

    [图像金字塔] 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像.把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺 ...

  10. zip与unzip