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 ...
随机推荐
- drupal 网址合集
Drupal7上传图片和文件重命名 http://drupalchina.cn/node/2168 Drupal 7 导入中文超时错误解决方法http://drupalchina.cn/node/17 ...
- java-数据库连接工具类 DataSourceUtil.java
DataSourceUtil.java package com.gordon.utils; import java.sql.Connection; import java.sql.ResultSet; ...
- JS实现点击表头表格自动排序(含数字、字符串、日期)
这篇文章主要介绍了利用JS如何实现点击表头后表格自动排序,其中包含数字排序.字符串排序以及日期格式的排序,文中给出了完整的示例代码,并做了注释,相信大家都能看懂,感兴趣的朋友们一起来看看吧. < ...
- 【转】【C++】__stdcall、__cdcel和__fastcall三者的区别
__stdcall.__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式.栈内数据的清除方式.编译器函数名的修饰规则等.如下图所示,可以在IDE环境中设定所有函 ...
- am335x LCD参数更改
/******************************************************************** * am335x LCD参数更改 * * 本文记录am335 ...
- e558. 在Applet中多图片交互显示
This is the simplest applet to animate an array of images. In practice, you should use double-buffer ...
- highchart的用法积累
highcharts 柱子换颜色 var colors = Highcharts.getOptions().colors; $(arr_Y_bfb).each(function (index, ele ...
- Windows 环境搭建Redis集群
环境以及引用资料 1.windows server 2008 r2 enterprise (木有办法,公司的服务器全是如此,就这种环境搭建吧) 2.redis官方资料下载: https://redi ...
- Unity3D手机平台分辨率自动匹配教程
1. 下载NGUI 2. 导入NGUI package到Unity. 这时候菜单上会出现NGUI的菜单栏: 3. 将默认的Main Camera删掉,通过菜单栏NGUI->Create新建一个2 ...
- Dedecms当前位置{dede:field name='position'/}修改,去掉>方法
Dedecms当前位置{dede:field name='position'/}修改,如何去掉> 一.修改{dede:field name='position'/}的文字间隔符,官方默认的是&g ...