IO流数据读写总结
1.用java自带的IO读写方法 官方API网站:http://docs.oracle.com/javase/7/docs/api/
2.Apache的Commons-io-2.4.jar中的方法,参考文档:http://commons.apache.org/proper/commons-io/javadocs/api-2.4/index.html
/*
* 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据
* 常用方法请参考帮助文档
* */
public void readWriteCopyFile(){
File file1 = new File("c:/to.txt");
File file2 = new File("c:/to_new.txt");
try {
String input = FileUtils.readFileToString(file1,"gb2312");
System.out.println(input);
FileUtils.copyFile(file1, file2); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String fileName = "C:/to.txt";
File file = new File(fileName);
String fileContent = ""; fileContent +="Helloworld";
try {
FileUtils.writeStringToFile(file, fileContent, "gb2312");
} catch (IOException e) {
e.printStackTrace();
}
} /*
* 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写数据
* */
public void URLToFileTest(){
try {
URL url = new URL("http://www.163.com"); File file = new File("c:\\163.html"); FileUtils.copyURLToFile(url, file);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /*
* 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据
* */
public void readURL() throws IOException{ InputStream in = new URL( "http://www.blogjava.net/ashutc/archive/2010/07/13/325933.html" ).openStream(); try { System.out.println( IOUtils.toString( in ) );
} finally {
IOUtils.closeQuietly(in);
} } /*
* 用apache的ommons-io-2.4.jar的ileUtils类中的方法读写url内容数据
* */
public void downTolocal(){ try {
InputStream in = new URL("http://img4.cache.netease.com/tech/2015/12/10/201512101531442cb6f_550.png").openStream(); byte [] gif = IOUtils.toByteArray(in);
//IOUtils.write(gif,new FileOutputStream(new File("c:/test.gif"))); //将字符串内容直接写到文件中
FileUtils.writeByteArrayToFile(new File("c:/test.png"),gif) ; //将字节数组内容写到文件中
System.out.println("done");
IOUtils.closeQuietly(in);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } /*
* 使用java自带的带有缓存区字节读写数据---提高读写速度
*
*/
public void RwByByteStream() { File fileIn = new File("D:/java.docx");
File fileOut = new File("D:/java_new.docx");
long before = System.currentTimeMillis();
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(fileIn);
fos = new FileOutputStream(fileOut);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} BufferedInputStream bis = new BufferedInputStream(fis,100000); //设置缓冲区及大小
BufferedOutputStream bos = new BufferedOutputStream(fos,100000); //设置输出流缓冲区及大小
byte [] buffer = new byte[10000];
int l;
int num = 0;
try {
while((l=bis.read(buffer))!=-1){
bos.write(buffer, 0, l);
num++;
}
System.out.println(System.currentTimeMillis()-before+"ms");
System.out.println(num);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
bos.close();
fos.close();
bis.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } /*
* 使用java字符流读写数据
*
* */
public void RWByCharStream() { try {
//File file = new File("d:/java.txt");
FileInputStream fis = new FileInputStream("d:/java.txt");
FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true);
InputStreamReader isr = new InputStreamReader(fis, "gb2312");
OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312");
char input[] = new char[100];
int l = 0;
while ((l = isr.read(input)) != -1) {
//String inputString = new String(input,0,l);
osw.write(input,0,l);
}
isr.close();
fis.close();
osw.close();
fos.close();
System.out.println("done"); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /*
* 使用java缓冲区字符流读写数据
*
* */
public void RWByBufferedCharStream() { try { //File file = new File("d:/java.txt");
FileInputStream fis = new FileInputStream("d:/java.txt");
FileOutputStream fos = new FileOutputStream("d:/java_new.txt",true); //加true表示追加写到这个文件中,否则覆盖此文件
InputStreamReader isr = new InputStreamReader(fis, "gb2312");
OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312"); BufferedReader br = new BufferedReader(isr); //设置缓冲区
BufferedWriter bw = new BufferedWriter(osw);
// PrintWriter pw = new PrintWriter(osw); String input;
while ((input = br.readLine()) != null) {
bw.write(input);
bw.newLine();
System.out.println(input);
// pw.println(input);
}
br.close(); //各流后打开的先关闭,先打开后关闭
bw.flush();
bw.close();
// pw.close();
isr.close();
fis.close();
osw.close();
fos.close();
System.out.println("done"); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } }
IO流数据读写总结的更多相关文章
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- C#常用IO流与读写文件
.文件系统 ()文件系统类的介绍 文件操作类大都在System.IO命名空间里.FileSystemInfo类是任何文件系统类的基类:FileInfo与File表示文件系统中的文件:Directory ...
- C#常用IO流与读写文件 (转)
源自https://www.cnblogs.com/liyangLife/p/4797583.html 谢谢 1.文件系统 (1)文件系统类的介绍 文件操作类大都在System.IO命名空间里.Fil ...
- 【原创】IO流:读写操作研究(输入流)
默写代码(以下问题要求能默写,不翻书不百度) 输入 问题一:从文件abc.txt中读取数据到字节数组并打印出来. 分析:如果读取数据,首先第一个问题,数据有多少?如果数据量不确定,如果确定字节数组大小 ...
- JavaEE基础(二十二)/IO流
1.IO流(序列流) 1.什么是序列流 序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推. 2.使用方式 整合两个: ...
- JavaEE基础(二十)/IO流
1.IO流(IO流概述及其分类) 1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流. 流按操作类型分 ...
- day20<IO流>
IO流(IO流概述及其分类) IO流(FileInputStream) IO流(read()方法返回值为什么是int) IO流(FileOutputStream) IO流(FileOutputStre ...
- IO流简要总结
IO流小总结 IO流的本质就是用于数据的传输,根据流的方向的不同,有输入流.输出流.根据数据类型的不同,又有字节流.字符流. 字节流 字节输入流 InputStream 字节输出流 Outpu ...
- day22<IO流+>
IO流(序列流) IO流(序列流整合多个) IO流(内存输出流) IO流(内存输出流之黑马面试题) IO流(对象操作流ObjecOutputStream) IO流(对象操作流ObjectInputSt ...
随机推荐
- MySQL的数据类型,MySQL增删改--添加主外键、添加属性、删除主外键、改表名、获取系统当前时间等
ls /etc/rc.d/init.d/mysql56service mysql56 start ps aux |grep "mysql"|grep "socket=&q ...
- Tapestry5.3使用总结
1.Tapestry框架的加载是通过Filter来完成的,需要在web.xml中加入以下配置: <filter> <filter-name>app</filter-nam ...
- 【详细贴】Ubuntu Linode搭建海外策略路由VPN IPSec+L2TP(一)
对于码农来说,Google上搜索,stackoverflow上提问,twitter上交流,这样的国际化开放平台才是码农成长的空间.但是,目前遇到的一些现实的困难,无可避免的带来一些麻烦,不过这难不倒我 ...
- TCP中ECN的工作原理分析二(摘自:RFC3168)
英文源:http://www.icir.org/floyd/ecn.html 发送端和接收端处理: The TCP Sender For a TCP connection using ECN, new ...
- form表单重复提交,type=“button”和type=“submit”区别
公司测试提了一个项目后台在IE浏览器下(360,firefox就没问题)出现数据重复的问题,调试了好久终于发现问题所在,也不知道是谁写的代码,醉醉的.... 错误地点: <input type= ...
- 使用unity创建塔防游戏(原译)(part1)
塔防游戏非常地受欢迎,木有什么能比看着自己的防御毁灭邪恶的入侵者更爽的事了. 在这个包含两部分的教程中,你将使用Unity创建一个塔防游戏. 你将会学到如何: 创建一波一波的敌人 使敌人随着路标移动 ...
- Maven之pom.xml 配置详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- sublime vue 语法高亮插件安装
默认情况下,Vue.js 的单文件组件(*.vue)在 sublime 编辑器中是不被识别的.若要想高亮显示,需要安装插件 Vue Syntax Hightlight.安装步骤如下: 第一,在 s ...
- The Linux Mint 17.1:Eclipse Run The C++ And Python Configoration
p { margin-bottom: 0.1in; line-height: 120% } # Copyright (c) 2016, 付刘伟 (Liuwei Fu)# All rights rese ...
- 【CentOS如何最小化安装】
近来发现越来越多的运维小伙伴们都有最小化安装系统的洁癖,因此,找老男孩来咨询,这个"洁癖"好习惯啊,必须支持,,因此发布本文和大家分享下. (1)系统安装类型选择及自定义额外包组 ...