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. 【大数据之数据仓库】GreenPlum优化器对比测试

    在< [大数据之数据仓库]选型流水记>一文中有提及,当时没有测试GreenPlum的quicklz压缩算法和ORCA查询优化器,考虑到quicklz压缩算法因为版权问题不会开源(详情请参阅 ...

  2. 【03】循序渐进学 docker:基础命令

    写在前面的话 之前谈了啥是 docker 和怎么安装 docker,这里就谈谈 docker 命令的使用,当然,这里的使用可能只是局限于 docker 的增删查改. 另外需要注意的是,为了图片的美观, ...

  3. windows查看和杀死占用端口的进程

    1.首先使用 netstat -ano查看占用端口的进程号 2.然后使用 taskkill /PID (进程号)杀死进程

  4. kali linux之sqlmap

    一款开源的命令行自动SQL注入工具,它能够对多种主流数据库进行扫描支持,基于Python环境. 检测动态页面中get/post参数,cookie,http头 数据榨取/文件系统访问 操作系统命令执行 ...

  5. Python爬虫从入门到放弃 之 Scrapy框架中Download Middleware用法

    这篇文章中写了常用的下载中间件的用法和例子.Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所以 ...

  6. luoguP2781 传教

    https://www.luogu.org/problemnew/show/P2781 简化版题意:有 n 个数,初始值为 0,进行 m 次操作,每次操作支持将 [l, r] 加 v 和查询 [l, ...

  7. 洛谷P3355 骑士共存问题(最小割)

    传送门 de了两个小时的bug愣是没发现错在哪里……没办法只好重打了一遍竟然1A……我有点想从这里跳下去了…… 和方格取数问题差不多,把格子按行数和列数之和的奇偶性分为黑的和白的,可以发现某种颜色一定 ...

  8. JavaBean的概念

    Java的一个特性,数据与行为相分离.数据就是成员变量,行为就是setter和getter方法 JavaBean是Java中开发的可以跨平台的重要组件,在JSP中常用来封装业务逻辑和数据库操作.Jav ...

  9. 老男孩Day16作业:登录、注册、后台管理页面(动态)

    一.作业需求: 1.后台管理主界面(左边菜单框.(全选.反选)框.返回顶部按钮) 2.老男孩登录.注册页面 二.博客地址:https://www.cnblogs.com/catepython/p/93 ...

  10. postgresql中的各种scan的比较

    最近在看postgresql的查询计划,在查询中对表的扫描计划大概有如下几种: Seq Scan Index Scan Bitmap Heap Scan Index Only Scan 这里就把自己的 ...