package com.swift.jinjie;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintStream; /*从键盘输入一个文件夹路径,利用打印流将该文件夹下的所有文件(包括子文件夹)复制到D盘下temp文件夹下。*/ public class PrintAllToFile { public static void main(String[] args) throws IOException { File srcDir=new File("d:/abc");
File destDir=new File("d:/temp");
printAllFile(srcDir,destDir);
System.out.println("包括子文件夹复制成功");
} private static void printAllFile(File srcDir, File destDir) throws IOException { if(!destDir.exists()) {
destDir.mkdirs();
}
File[] files=srcDir.listFiles();
for(File file:files) {
if(file.isDirectory()) {
File destDirNew=new File(destDir,file.getName());
printAllFile(file,destDirNew);
}else {
File destFile=new File(destDir,file.getName());
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
PrintStream ps=new PrintStream(destFile);
int len;
byte[] buf=new byte[1024];
while((len=bis.read(buf))!=-1) {
ps.write(buf, 0, len);
} }
}
} }

不同编码文件复制到同一文件

package com.swift.jinjie;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; /*d:/abc盘下有两个文本文件,分别为a.txt和b.txt,其中a.txt编码方式是gbk,而b.txt的编码方式是utf8。要求将使用转换流实现如下功能:
将a.txt和b.txt文件的内容复制到c.txt文件中,保证内容不乱码。*/ public class MergeTxt { public static void main(String[] args) throws IOException, FileNotFoundException { File file1=new File("d:/abc/a.txt");
File file2=new File("d:/abc/b.txt");
File destFile=new File("d:/abc/c.txt");
mergeFile(file1,file2,destFile);
} private static void mergeFile(File file1, File file2,File destFile) throws IOException { InputStreamReader isr1=new InputStreamReader(new FileInputStream(file1),"gbk");
InputStreamReader isr2=new InputStreamReader(new FileInputStream(file2),"utf-8");
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(destFile,true),"utf-8");
int len;
char[] buf=new char[1024];
while((len=isr1.read(buf))!=-1) {
osw.write(buf, 0, len);
osw.flush();
}
while((len=isr2.read(buf))!=-1) {
osw.write(buf, 0, len);
osw.flush();
}
osw.close();
isr1.close();
isr2.close();
System.out.println("文件复制成功");
} }

序列化流反序列化流

package com.swift.jinjie;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner; import com.swift.baseKnowledge.Student; /*有学生类包含学号,姓名,省份证号,Java成绩,数学成绩,英语成绩等成员变量,提供构造方法和setter和getter方法。
要求:
* 学生信息及成绩保存到C盘的save.txt文件中
* 学生身份证号码不能保存到文件中。
* 程序运行时如果save.txt不存在,则
从键盘录入1个学生信息,信息录入格式如下:
***** 录入学生信息 *****
请输入学号:9527
请输入姓名:华安
请输入身份证号:2203919831234543
请输入Java成绩:90
请输入数学成绩:80
请输入英语成绩:88 根据录入的信息创建学生对象并将学生对象保存到C盘下的save.txt文件中。
* 如果程序运行时,save.txt文件已经存在,则显示学生信息。格式如下:
**** 学生基本信息 *****
学号 姓名 省份证号 Java成绩 数学成绩 英语成绩
9527 华安 null 90 80 88*/ public class Fanxuliehua { public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException { inputInfo();
} private static void inputInfo() throws FileNotFoundException, IOException, ClassNotFoundException { Scanner scan=new Scanner(System.in);
for(int i=0;i<1;i++) {
System.out.print("请输入学号:");
String id=scan.next();
Student student=new Student();
student.setId(id);
System.out.println("请输入姓名:");
String name=scan.next();
student.setName(name);
System.out.println("请输入身份证号:");
String uid=scan.next();
student.setUid(uid);
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("save.txt"));
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("save.txt"));
oos.writeObject(student);
Student stu=(Student)ois.readObject();
System.out.println(stu);
System.out.println("学号 姓名 身份证号 数学成绩 语文成绩 总分");
System.out.println(stu.getId()+" "+stu.getName()+" "+stu.getUid()+" "+stu.getShuxue()+" "); }
} }

java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流的更多相关文章

  1. C++ MFC 操作文件夹及属性(新建,删除[包含子文件[夹]],剪切,复制,重命名)

    源文件:http://pan.baidu.com/s/169HCL 运行mfc缺失的动态连接库:http://pan.baidu.com/s/17pGlT 截图: 不足之处仅供参考,哈哈.

  2. Windows批量修改文件夹及子文件夹下文件的扩展名

    实例:将 D:/backup 目录下所有后缀名为 “.zip” 的文件替换为 “.exe” 后缀 bat批处理: @echo off rem 不显示执行过程 D: rem 切换至指定盘符 cd D:/ ...

  3. java实现文件夹(包括其中的子文件夹、子文件)的复制——递归

    这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: package com.simon.m ...

  4. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  5. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  6. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  7. JAVA中删除文件夹下及其子文件夹下的某类文件

    ##定时删除拜访图片 ##cron表达式 秒 分 时 天 月 ? ##每月1日整点执行 CRON1=0 0 0 1 * ? scheduled.enable1=false ##图片路径 filePat ...

  8. 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例

    该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...

  9. Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)

    最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里 有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Goog ...

随机推荐

  1. Dropping Balls UVA - 679(二叉树的遍历)

    题目链接:https://vjudge.net/problem/UVA-679 题目大意:t组样例,每组包括D M   层数是D   问第M个小球落在哪个叶子节点?    每个节点有开关  刚开始全都 ...

  2. 性能测试工具LoadRunner31-LR之链接mysql

    步骤: 1.建好mysql数据库并启动 2.下载libmysql.dll,放到保存脚本的文件夹下 3.编写脚本并运行 Action() { int rc; //定义状态变量,0表示成功,非0表示失败 ...

  3. 摄像机模型 (Camera Model)

    摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换描述,即摄像机成像模型.摄像机成像模型有不同描述方式,本节首先介绍机器视觉中的常用坐标系,然后介绍摄像机的线性模型和非线性模型 ...

  4. zepto.js常用操作

    zepto.js是移动端的jquery,但是并没有提供所有与jquery类似的api.Zepto设计的目的是有一个5-10k的通用库.下载并快速执行.有一个熟悉通用的API,所以你能把你主要的精力放到 ...

  5. LeetCode 222.完全二叉树的节点个数(C++)

    给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底 ...

  6. One By One扑克牌游戏(C++)

    用我们方言说就是类似“骡子冲”的游戏,游戏双方各拿一定数目的扑克牌,每次每个人打一张牌,排成一列.如果打出的牌有一样的,那么这两张牌(包括这两张牌),全部按顺序拿到打出第二张相同牌的玩家手中,且放在手 ...

  7. eureka 源码

    本文为eureka学习笔记,错误之处请指正. ----------------------------------------------------------- 1.服务生产者是怎么注册到配置中心 ...

  8. 硬盘和显卡的访问与控制(三)——《x86汇编语言:从实模式到保护模式》读书笔记03

    上一篇博文我们用了很大的篇幅说了加载器,这一篇我们该说说用户程序了. 先看作者的源码吧. ;代码清单8-2 ;文件名:c08.asm ;文件说明:用户程序 ;创建日期:2011-5-5 18:17 ; ...

  9. 记一次失败的Linux安装

    这次把整个电脑都装了Ubuntu,向Linux这条路越走越远了,也感谢社会对Linux的支持越来越完善了,才让我下定这个决心,再次表示感谢 之前都是装双系统或者在vm下安装的Linux,现在再装一次, ...

  10. genymotion安装及使用出现的问题

    此处总结genymotion出现的问题. 1)安装好genymotion后,新建一个模拟器.去下载的时候报错 Unable to create Virtual Device: Connection t ...