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 ...
随机推荐
- Django入门实践(三)
Django入门实践(三) Django简单应用 前面简单示例说明了views和Template的工作过程,但是Django最核心的是App,涉及到App则会和Model(数据库)打交道.下面举的例子 ...
- UITableView的常用方法与示例
实例方法 dequeueReusableCellWithIdentifier: 初始化一个指定重用标识符的UITableCell对象 两个协议 UITableViewDataSource tableV ...
- android jni ndk 视频分享
链接如下:http://download.csdn.net/detail/jltxgcy/5667327.
- [HMLY]8.Cocoa
cocoa是苹果公司为mac os x所创建的原声面向对象API,是mac os x上五大API之一,其他四个是carbon,posiX,x11,java. 苹果的面向对象开发框架,用来生成 Mac ...
- SublimeText快捷键
在我做了一次包含一些现场编码的演示后,一些观众问我是如何操作这么快.当然这里没有唯一的答案,答案是一堆简单的快捷键和大量的实践的组合.为了回应那些询问,我觉得有必要看看我每天想都不用想且使用的快捷键. ...
- centos 安装apache activemq
安装说明 安装环境:CentOS-6.3 安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz下载地址http://activemq.apache.org/downloa ...
- TMCache
TMCache设计的目的是用于存储临时持久化对象的开源iOS/OS key/value缓存类库,减少重复创建像下载数据.缓慢的处理结果这样的昂贵性能花销.TMCache由两个本身相似的存储组成,一个 ...
- mac下 使用 versions版本控制工具 修复游戏bug过程
1,首先拥有游戏源代码文件,修复bug之前先使用versions工具进行更新: 2,查找指定的bug之前,先运行游戏,在源代码中觉得是bug的地方打个断点,然后运行游戏的对应有bug的地方,看是否会有 ...
- jQ内容的强大,后面继续跟进...
<script type="text/javascript" src="jQ/jquery.js"></script> <scri ...
- attr 和 prop 区别
jquery 中 attr 和 prop 都表示 "属性",同样是属性为啥还要弄两个! attr 适用于自定义属性 如 定义一个懒加载用的src 栗子 <img class= ...