JavaIO简单代码实例
最近又复习了下JavaIO写了些实例代码都很简单但是能体现大部分方法的用法。
IO流实现文件的拷贝 几种不同的方法:
package com.wxisme.TestIO; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; /**
* 字节流拷贝文本文件
* @author wxisme
*
*/ public class StreamOne { public static void main(String[] args) {
String path = "E:" + File.separator + "test.txt";
File file = new File(path);
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建文件失败");
e.printStackTrace();
}
InputStream is = null;
try {
is = new FileInputStream(file);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
String fileName = "E:" + File.separator + "Bullet.java";
OutputStream os = null;
try {
os = new FileOutputStream(fileName,true);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
byte[] b = new byte[10];
int len = 0;
try {
while((len = is.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();//强制刷出缓冲区
} catch (IOException e) { e.printStackTrace();
}finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
} System.exit(0); } }
package com.wxisme.TestIO; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer; /**
* 字节流拷贝文件
* @author wxisme
*
*/ public class StreamTwo { public static void main(String[] args) {
String path = "E:" + File.separator + "test.txt";
String name = "E:" + File.separator + "Bullet.java";
Reader r = null;
try {
r = new FileReader(name);
} catch (FileNotFoundException e) {
System.out.println("创建字符输入流失败");
e.printStackTrace();
}
Writer w = null;
try {
w = new FileWriter(path);
} catch (IOException e) {
System.out.println("创建字符输出流失败");
e.printStackTrace();
}
char[] cbuf = new char[10];
int len = 0;
try {
while((len = r.read(cbuf)) != -1) {
//w.write(cbuf);
w.write(cbuf, 0, len);
}
w.flush();//强制刷出
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
w.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
r.close();
} catch (IOException e) {
e.printStackTrace();
}
} } }
package com.wxisme.TestIO; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner; /**
* 重定向输入输出 实现文件的拷贝
* @author wxisme
*
*/ public class Reset { public static void main(String[] args) throws FileNotFoundException {
String src = "E:" + File.separator + "Bullet.java";
String path = "E:" + File.separator + "test.txt";
FileInputStream fis = new FileInputStream(src);
System.setIn(fis); PrintStream ps = new PrintStream(new FileOutputStream(path));
System.setOut(ps); Scanner scan = new Scanner(System.in);
scan.useDelimiter("\n");//以换行符为分隔符
while(scan.hasNext()) {
System.out.println(scan.next());
}
} }
处理流PrintStrream PrintWriter
package com.wxisme.TestIO; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter; /**
* 使用处理流printStream printWriter
* @author wxisme
*
*/ public class StreamFour { public static void main(String[] args) throws IOException {
String path = "E:" + File.separator + "test.txt";
PrintStream ps = new PrintStream(new FileOutputStream(path,true));
ps.print("PrintStream");
PrintWriter pw = new PrintWriter(new FileWriter(path));
pw.print("PrintWriter");
pw.close();
ps.close();
} }
读取单个字符
package com.wxisme.TestIO; import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Scanner; /**
* 读取单个字符
* @author wxisme
*
*/ public class ReaderOne { public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
String str = scan.next();
Reader r = new StringReader(str);
char[] cbuf = new char[10];
while(r.read(cbuf,0,1) != -1) {
char c = cbuf[0];
System.out.println(c);
}
r.close(); } }
转换流
package com.wxisme.TestIO; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; /**
* 使用转换流
* @author wxisme
*
*/ public class StreamThree { public static void main(String[] args) throws IOException { /*
* 输入流底层使用字节流,然后使用转换流把字节流转换成字符流,并且指定解码字符集。
* 然后把字符流包装成缓冲流,按行读取文件。
* 乱码问题的两个主要原因:
* 1. 解码字符集与编码字符集不统一
* 2. 读取字节缺少,长度丢失。
*/
String path = "E:" + File.separator + "Bullet.java";
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(path)),"utf-8"));
String str;
while((str = br.readLine()) != null) {
System.out.println(str);
}
br.close(); } }
关闭文件的工具方法的两种写法:
package com.wxisme.TestIO; import java.io.Closeable;
import java.io.IOException; /**
* 关闭文件资源的工具类 有两种实现方法 可以实现一次关闭多个文件,先打开的文件后关闭
* @author wxisme
*
*/ public class CloseAll { /**
* 使用多态 可变参数 可以有多个形参以数组的形式 可变形参必须在所有参数的最后
* @param io
*/
public static void closeAll1(Closeable ... io) {
for(Closeable temp : io) {
if(temp != null) {
try {
temp.close();
} catch (IOException e) {
System.out.println("文件关闭失败");
e.printStackTrace();
}
}
}
} /**
* 泛型方法 使用泛型方法和可变参数
* @param io
*/ public static <T extends Closeable> void closeAll2(Closeable ... io) {
for(Closeable temp : io) {
if(temp != null) {
try {
temp.close();
} catch (IOException e) {
System.out.println("文件关闭失败");
e.printStackTrace();
}
}
}
} }
JavaIO简单代码实例的更多相关文章
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...
- 从一些简单代码实例彻底理解面向对象编程思想|OOP本质是什么?
从Rob Pike 的 Google+上的一个推看到了一篇叫<Understanding Object Oriented Programming>的文章,我先把这篇文章简述一下,然后再说说 ...
- input文本框实现宽度自适应代码实例
代码实例如下: <!DOCTYPE html> <html><head><meta charset="utf-8"><meta ...
- jQuery实现的鼠标滑过切换图片代码实例
jQuery实现的鼠标滑过切换图片代码实例:有时候网页需要这样的简单效果,那就是当鼠标滑过默认图片的时候,能够实现图片的切换,可能在实际应用中,往往没有这么简单,不过大家可以自行扩展一下,下面简单介绍 ...
- input文本框实现宽度自适应代码实例,input文本框
本章节介绍一下如何让一个文本框的宽度能够随着文本框中的内容的宽度增长而增长,也就是能够实现宽度自适应效果. 代码实例如下: <!DOCTYPE html> <html> < ...
- ASP.NET MVC 4 插件化架构简单实现-实例篇
先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集. 4.定义模板引擎的搜索路径. 5.在模板引擎的查找页面方 ...
- div均匀分布代码实例
多个div在同一行以相同间隔分布: 这样的布局效果使用非常的频繁,也就是让多个div在一行分布,并且div于div之间的间隙是一样的,多用在对于产品的展示之用,下面就介绍一下如何实现此中布局,代码实例 ...
- html利用锚点实现定位代码实例
本章节介绍介绍一下如何利用锚点实现定位,使用锚点实现定位是html固有的功能,当然比较简单,也实现了基本的功能,但是功能相对简单一些,如果想要实现平滑的定位可以参阅jquery实现的点击页面动画方式平 ...
- Linux简单程序实例(GNU工具链,进程,线程,无名管道pipe,基于fd的文件操作,信号,scoket)
一, GNU工具链简介: (1)编译代码步骤: 预处理 -> 编译 -> 汇编 -> 链接: 预处理:去掉注释,进行宏替换,头文件包含等工作: gcc -E test.c -o te ...
随机推荐
- Ubuntu12.10 使用JLink连接开发板用arm-gdb调试ARM程序
Part1 环境搭建和工具安装 1.1 设置交叉编译环境 安装相关的编译工具: sudo apt-get install build-essential gcc-arm-linux-gnueabi 这 ...
- [转]eclipse导入V7包出现错误解决办法
android下v4 v7 v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理. android的扩展包主要是用来兼容低版本的,比如android3.0以后出现 ...
- linux 提示符绝对路径
# Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] & ...
- 浅谈Log4j和Log4j2的区别
相信很多程序猿朋友对log4j都很熟悉,log4j可以说是陪伴了绝大多数的朋友开启的编程.我不知道log4j之前是用什么,至少在我的生涯中,是log4j带我开启的日志时代. log4j是Apache的 ...
- 命令行启动kettle
kettle命令启动: http://download.csdn.net/detail/ludaxin6/9519418 kettle命令启动参数: http://blog.csdn.net/glei ...
- CSS 超出隐藏实现限制字数的功能代码(多浏览器支持)
<html> <title>css控制字数</title> <head> <style type="text/css"> ...
- C++ 判断目录是否存在并新建目录
http://blog.csdn.net/u012005313/article/details/50688257 #include <io.h> #include <string&g ...
- Hibernate注解关系映射
Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid) 1)一对一外键关联映射(单向) @O ...
- 查找——图文翔解HashTree(哈希树)
引 在各种数据结构(线性表.树等)中,记录在结构中的相对位置是随机的.因此在机构中查找记录的时须要进行一系列和keyword的比較.这一类的查找方法建立在"比較"的基础上.查找的效 ...
- 利用circpedia 数据库探究circRNA的可变剪切
circpedia 中收录了利用circexplorer 软件识别到的circRNA, 覆盖了人,小鼠,鸟类,昆虫多个物种的多种细胞系的数据 官网链接如下: http://www.picb.ac.cn ...