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 ...
随机推荐
- javascrip基础学习
JS是一种解释性脚本语言,在网页开发用经常用到(HTML CSS),用于控制网页的行为.现在RTT的柿饼UI也是用JS来开发的,所以很有必要学习一下. 注释:// ./* */ 语句分行: 折行\ ...
- 我想和你们说说java和C++___C加加
头痛头痛之一: java里面,本质上来说,一个类是一个程序员定义的类型,类是一种引用类型(reference type),这意味着该类类型的变量都可以引用该类的一个实例.从表面上,对象引用变量中似乎存 ...
- maya卸载不干净
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- mysql初期使用全本
mysql mysql前戏 数据库服务器-:运行数据库管理软件 =>pc 数据库管理软件:管理-数据库 => mysql 数据库:用来组织文件/表 => 文件夹 表:用来存放多行内容 ...
- Hack Knowledges
XSS(Cross-Site Scripting) Hacker PC -- upload XSS script to Web Server --> User PC Request for th ...
- Linux访问https报错
今天用Linux(CentOS)拉Git仓库时,报了个错unable to access 'https://github.com/Wind4/vlmcsd.git/': SSL connect err ...
- [Java][Servlet] Cannot call sendRedirect() after the response has been committed
做一个Login Demo的时候,写了如下代码: protected void doPost(HttpServletRequest request, HttpServletResponse respo ...
- JavaScript 对象继承 OOP (三)
对象继承 A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. JavaScript 语言的继承不通过 class (es6 中的class 不过是 ...
- 最小白的webpack+react环境搭建
本文也同步发表在我的公众号“我的天空” 从零开始,用最少的配置.最少的代码.最少的依赖来搭建一个最简单的webpack+react环境. 最近在玩webpack+react+移动端,那么第一步自然是搭 ...
- 零基础逆向工程34_Win32_08_线程控制_CONTEXT结构
线程控制 实验 挂起线程 ::SuspendThread(hThread); 恢复线程 ::ResumeThread(hThread); 终止线程 (这里讲了同步调用与异步调用) 方式一: 此方法结束 ...