IO 复习字节流字符流拷贝文件
- /* 本地文件 URL 文件拷贝 */
/*文本文件拷贝 可以通过 字符流,也可以通过字节流*/
- /*二进制文件拷贝 只可以通过字节流*/
/* 希望这个例子能帮助搞懂 字符流与字节流的区别 */
- import java.io.*; //in order to utilize stream object
- import java.util.*; // in order to utilize ArrayList
- import java.net.*;
- class Copy{
- public static void main(String [] args){
- boolean flag=false;
- String src="C:\\Users\\Ghc\\Desktop\\extractzip.bat";
- String dest="C:\\Users\\Ghc\\Desktop\\Test\\extractzip_copy.bat";
- System.out.println("copy textDoc: from "+src+" to "+dest+(copyTextDoc(src,dest) ? "Successfully!":"Failed"));
- src="C:\\Users\\Ghc\\Desktop\\psb.jpg";
- dest="C:\\Users\\Ghc\\Desktop\\Test\\psb.jpg";
- System.out.println("copy textDoc: from "+src+" to "+dest+(copyBinFile(src,dest) ? "Successfully!":"Failed"));
- String url="http://qiniuuwmp3.changba.com/852316795.mp3";
- String destPath="C:\\Users\\Ghc\\Desktop\\Test\\music.mp3";
- // downLoad mp3 from URL
- downLoadMP3FromURL(url,destPath);
- }
- public static void downLoadMP3FromURL(String url,String destPath){
- InputStream urlInpts=null;
- BufferedInputStream bufinpts=null;
- BufferedOutputStream bufoutpts=null;
- try{
- urlInpts=new URL(url).openStream();
- bufinpts=new BufferedInputStream(urlInpts);
- bufoutpts=new BufferedOutputStream(new FileOutputStream(destPath));
- byte[] musicBuf=new byte[8192];
- int len=-1;
- while((len=bufinpts.read(musicBuf))!=-1){
- bufoutpts.write(musicBuf,0,len);
- bufoutpts.flush();
- }
- }
- catch(MalformedURLException mfurle){
- mfurle.printStackTrace();
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
- public static boolean copyTextDoc(String src,String dest){
- boolean flag=true;
- BufferedReader bufr=null;
- BufferedWriter bufw=null;
- ArrayList<String> lineList=null;
- try{
- //read text file
- //bufr=new BufferedReader(new InputStreamReader(new FileInputStream(src)));
- //等价于
- bufr=new BufferedReader(new FileReader(src));
- //bufw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest)));
- //等价于
- bufw=new BufferedWriter(new FileWriter(dest));
- lineList=new ArrayList<String>();
- String line=null;
- while((line=bufr.readLine())!=null){
- lineList.add(line);
- bufw.write(line,0,line.length());
- bufw.newLine();
- bufw.flush(); // must to flush!!! attention!!!
- }
- Iterator<String> it=lineList.iterator();
- while(it.hasNext()){
- line=it.next();
- System.out.println(line+" from iterator");
- }
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- flag=false;
- //write text file
- }
- finally{
- if(bufr!=null)
- try{
- bufr.close();
- bufr=null;
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- }
- if(bufw!=null)
- try{
- bufw.close();
- bufw=null;
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
- return flag;
- }
- public static boolean copyBinFile(String src,String dest){
- boolean flag=true;
- BufferedInputStream bufinpts=null;
- BufferedOutputStream bufoutpts=null;
- byte [] buf=new byte[1024];
- int len=-1;
- try{
- bufinpts=new BufferedInputStream(new FileInputStream(src));
- bufoutpts=new BufferedOutputStream(new FileOutputStream(dest));
- while((len=bufinpts.read(buf))!=-1){
- bufoutpts.write(buf,0,len); // not need to flush, but the last buf may not been copied
- // print binary data see see , it's funny!!!
- /* for(int i=0;i<len;i++){
- System.out.print(buf[i]);
- } */
- bufoutpts.flush();
- }
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- flag=false;
- }
- finally{
- if(bufinpts!=null)
- try{
- bufinpts.close();
- bufinpts=null;
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- }
- if(bufoutpts!=null)
- try{
- bufoutpts.close();
- bufoutpts=null;
- }
- catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
- return flag;
- }
- }
IO 复习字节流字符流拷贝文件的更多相关文章
- IO—》字节流&字符流
字节流 一.字节输出流OutputStream OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节,定义了输出字节流的基本共性功能方法. FileOutputStre ...
- Java之字符流读写文件、文件的拷贝
字符流读数据 – 按单个字符读取 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 调用方法读取数据: int d ...
- 第31天学习打卡(File类。字符流读写文件)
File类 概念 文件,文件夹,一个file对象代表磁盘上的某个文件或者文件夹 构造方法 File(String pathname) File(String parent,String child) ...
- -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流
File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...
- Java基础小知识1——分别使用字节流和字符流复制文件
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...
- IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构) 根据处理数据类型的不同分为:字节流和字符流 根据数据流向不同分为:输入流和输出流 这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: 二:字符字节 ...
- Java中字节流和字符流复制文件
字节流和字符流复制文件的过程: 1.建立两个流对象 绑定数据源和目的地 2.遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的) 3.访问结束后关闭资源 字节流复制文件: ...
- IO字 节流/字符流 读取/写入文件
流是指一连串流动的数据信号,以先进,先出的方式发送和接收的通道 流的分类根据方向分为输入流所有接收,获得,读取的操作都是属于输入流所有的输入流名字都带有input或Reader 输出流所有发送,写的操 ...
随机推荐
- Asp.Net_Get跟Post
1. Get(即使用QueryString显式传递) 方式:在url后面跟参数. 特点:简单.方便. 缺点:字符串长度最长为255个字符:数据泄漏在url中. 适用数据 ...
- OD之绕过序列号验证(二)
上次是修改程序的标题,大家应该感觉这只是一个起点而已,接下来我们可以尝试绕过序列号验证,这种技术应用在很多软件中,比如淘宝上要买什么的软件,商家都会发给`你一个用户名和密码,而且还有试用期什么的,这确 ...
- EOS开发基础之二:使用cleos命令行客户端操作EOS(钱包wallet基础操作)
不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...
- 团队博客 Week14
0. 在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出 ...
- 【Alpha】第八次Scrum meeting
今日任务一览: 姓名 今日完成任务 所耗时间 刘乾 学习js并学会使用js读写xml文件.学习python读取xml的方式... 然后上午满课,下午从1点到10点当计组助教去沙河教了一下午+一晚上,所 ...
- 使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种滑动冲突
使用NestedScrollView+ViewPager+RecyclerView+SmartRefreshLayout打造酷炫下拉视差效果并解决各种冲突 如果你还在为处理滑动冲突而发愁,那么你需要静 ...
- [转帖]PG的简单备份恢复 找时间进行测试
转帖PG的简单使用 https://blog.csdn.net/lk_db/article/details/77971634 一: 纯文件格式的脚本: 示例:1. 只导出postgres数据库的数据, ...
- laravel 处理自定错误页面,如404,500,501,502,503,504等等
laravel 5.0 版本下,修改pp/Exceptions/Handler.phppublic function render($request, Exception $e) { if ($e i ...
- Java 工厂方法模式
在工厂对象上调用创建方法,生成接口的某个实现的对象 通过这种方式,接口与实现分离 方法接口 /** * 方法接口 */ public interface Service { void method1( ...
- SSH-keygen用法
很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...