java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流
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 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流的更多相关文章
- C++ MFC 操作文件夹及属性(新建,删除[包含子文件[夹]],剪切,复制,重命名)
源文件:http://pan.baidu.com/s/169HCL 运行mfc缺失的动态连接库:http://pan.baidu.com/s/17pGlT 截图: 不足之处仅供参考,哈哈.
- Windows批量修改文件夹及子文件夹下文件的扩展名
实例:将 D:/backup 目录下所有后缀名为 “.zip” 的文件替换为 “.exe” 后缀 bat批处理: @echo off rem 不显示执行过程 D: rem 切换至指定盘符 cd D:/ ...
- java实现文件夹(包括其中的子文件夹、子文件)的复制——递归
这是学校java课的一道实验题,题目如下:编程,根据指定的源和目标位置,完成指定文件或文件夹(包括其中的子文件夹.子文件)的复制. 以下是我的实现,使用了递归: package com.simon.m ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- Java 遍历指定文件夹及子文件夹下的文件
Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...
- JAVA中删除文件夹下及其子文件夹下的某类文件
##定时删除拜访图片 ##cron表达式 秒 分 时 天 月 ? ##每月1日整点执行 CRON1=0 0 0 1 * ? scheduled.enable1=false ##图片路径 filePat ...
- 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例
该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...
- Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)
最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里 有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Goog ...
随机推荐
- 电感的Q值
电感的Q值又称为品质因数,即在通过一定频率信号时,感抗与等效损耗之比.品质因数越高即系统损耗越小效率越高,一般为50`100,最高500左右,再大就会烧毁.一般Q值与很多因素有关:绕线粗细,长度与直径 ...
- E. Swapping Characters 一个喳喳的做法
http://codeforces.com/contest/903/problem/E 题意是,对于每个字符串都要交换两个位置的字符(id),使得结果所有字符串是一样的,输出那个字符串. 正解是,先比 ...
- 网页URLs
Extending Python Interpretor: https://docs.python.org/3/extending/index.html Aliyun Mriirors: https: ...
- Aspose.Words导出图片 表格 Interop.Word
先定义一个WORD 模板, 然后替换文本.域 ,定位开始表格 文本和段落 // Specify font formatting Aspose.Words.Font font = builder.Fon ...
- Day6 下(
T1 模拟,80? #include<iostream> #include<cstring> #include<queue> #include<algorit ...
- cmd/bat 判断日期,并删除文件
代码来自互联网. ---------------------------------------- @echo off set a=2018-07-9 set ndate=%date:~,10%set ...
- C++中的虚函数表
(感谢http://blog.csdn.net/haoel/article/details/1948051/) C++中的虚函数的作用主要是实现了多态的机制. 多态,简而言之就是用父类型别的指针指向其 ...
- 移动端适配(1)——viewport设置与初始化css
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=0 ...
- 使用min-content实现容器宽度自适应于内部元素
前言 设计师可以分为如下两类: 先做好设计,然后将内容放入静态框架中 优秀的设计师充分考虑内容的各个方面及其上下文,并创建适合于内容的设计 HTML原生就是响应式的(HTML内容在视口内流式的分布). ...
- AOSP 源码整编单编
<AOSP 源码下载>完成后,就可以开编了. 整编 整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img.userda ...