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 ...
随机推荐
- ExtJs GridPanel 给表格行或者单元格自定义样式
Ext.onReady(function(){ Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:['name', 'ema ...
- win7共享文件夹设置无密码
首先我们要启用guest账户,右键计算机 2 选择管理 3 选择本地用户和组 4 然后选择用户 5 然后选择Guest右键——属性——把账户已禁用勾掉,就可以了 6 然后点击桌面网络右键——属性 7 ...
- sql server merge 的用法
CREATE TABLE tTable ( id INT , f1 VARCHAR(10) , f2 VARCHAR(10) , f3 VARCHAR(10) ) GO INSERT INTO tTa ...
- 可供前端工程师选择的精彩CSS框架
在这里你有一个很酷的框架,收集创建的CSS布局. 如果你不喜欢框架,宁愿使用自己的手写代码以促进自己的发展,请跳过本篇文章. 我想有一个建设性的意见,那就是有选择的使用其优点避开其缺点. 就个人而言, ...
- Hibernate一级缓存、二级缓存以及查询缓存的关系
转载自http://blog.csdn.net/maoyeqiu/article/details/50209893 前两天总结了一下二级缓存和查询缓存的关系,但是又有一个新的问题,就是查询缓存缓存到二 ...
- am335x watchdog
am335x watchdog 内核文档kernel/Documentation/watchdog Qt@aplex:~/kernel/7109/linux-3.2.0/Documentation/w ...
- 基本上每个应用程序领域的程序员都有使用 C++
C++ 的使用基本上每个应用程序领域的程序员都有使用 C++. C++ 通常用于编写设备驱动程序和其他要求实时性的直接操作硬件的软件. C++ 广泛用于教学和研究. 任何一个使用苹果电脑或 Windo ...
- 关于document.createDocumentFragment()(转)
documentFragment 是一个无父对象的document对象. 他支持以下DOM2方法: appendChild, cloneNode, hasAttributes, hasChildNod ...
- poj 3740 Easy Finding(Dancing Links)
Easy Finding Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15668 Accepted: 4163 Des ...
- C++ string char[] 转化
可见到string转char[]相当简单,只要呼叫string class的成员函式c_str(),即可将string转为char[].那么char[]转string呢?有两种方法,第一种是初始str ...