IO
程序员文章站
2022-05-28 11:37:11
...
package Test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IO {
public static void main(String[] args) {
String path ="C:\\Users\\pc\\Desktop\\IO";
String data="C:\\Users\\pc\\Desktop\\IO\\data1.txt";
IO io = new IO();
File file = new File(path);
io.writeFile(file,path,5,data);
}
/**
*
* 在指定的文件夹下创建文件夹
* @param path
* @return
*/
public static File createDirctory(String path) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
String date = df.format(new Date());//文件夹名日期
File file = new File(path,date);
boolean mkdirs = file.mkdirs();//新建文件夹
if(mkdirs) {
return file;
}
return null;
}
/**
* @param file 统计的是哪个文件夹
* @return 当前文件夹下的文件个数
*/
public static int listfile(File file) {
int countfile=0;
if(file.isDirectory()) {//判断是否是文件夹
File[] files=file.listFiles();
for(File fileIndex:files) {
if(!fileIndex.isDirectory()) {
countfile++;
// listfile(fileIndex);
}
}
}
return countfile;
}
/**
* @param file 统计的是哪个文件夹
* @return 当前文件夹下的文件夹个数
*/
public static int listfolder(File file) {
int countfolder = 0;
if(file.isDirectory()) {//判断是否是文件夹
File[] files=file.listFiles();
for(File fileIndex:files) {
if(fileIndex.isDirectory()) {
// listfile(fileIndex);
countfolder++;
}
}
}
return countfolder;
}
/**
* 在指定的文件夹下创建文件
* @param file
* @return
*/
public static File createFile(File file) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");//设置日期格式
String fileName = sdf.format(new Date())+".txt";//文件名日期
File createFile = new File(file,fileName);
try {
boolean createNewFile = createFile.createNewFile();//新建文件
if(createNewFile) {
return createFile;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 在指定的文件夹中写文件
* @param fileDirctory
* @param num 创建文件的个数
*/
public void writeFile(File file,String path,int num,String data) {
try {
while(listfolder(file) < 10) {
File fileDirctory = createDirctory(path);
for(int i = 0; i < num; i++) {
//创建文件
File createFile = createFile(fileDirctory);
//像文件中写数据
//封装目的地
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(createFile),"UTF-8"));
//封装数据源
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(data),"UTF-8"));
//读写数据
char[] chs = new char[1024];//262144
int len;
while((len=br.read(chs))!=-1) {
//判断数据大小是否大于100K
while((createFile.length()/1024f)<100) {
bw.write(chs, 0,len);
bw.flush();
}break;
}
br.close();
bw.close();
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
// public static void write(File file,File file1) {
// String path ="C:\\Users\\pc\\Desktop\\IO";//新建文件夹路径
// File pathfile=new File(path);
// try {
// //封装数据源
// BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\pc\\Desktop\\IO\\data.txt"));
// //封装目的地
// BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file1),"UTF-8"));
// //读写数据
// char[] chs=new char[1024];//262144
// int len=0;
// while((len=br.read(chs))!=-1) {
// //判断跟路径下是否达到10个文件夹
// if(listfolder(pathfile)<=10) {
// if(listfile(file)<6) {//小于6,已创建
// if((file1.length()/1024f)<100) {
// bw.write(chs,0,len);
// bw.flush();
// System.out.println(file1.length()/1024f);
// }else {
// file1.delete();
// createFile(file);
//// if((file1.length()/1024f)==0) {
//// file1.delete();
//// }
// }
// }else {
// file.delete();
// createDirctory(path);
// }
// }
// }
// bw.close();
// br.close();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
}
package Test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class IOread {
public static void main(String[] args) {
String path="C:\\Users\\pc\\Desktop\\IO\\data.txt";
File file=new File("C:\\Users\\pc\\Desktop\\IO");
//存放目录及其子目录下的所有文件对象
List<File> myfile=new ArrayList<File>();
//开始遍历
listDirectory(file,myfile);
for(File files : myfile){
System.out.println("文本文件:"+files.getAbsolutePath());
File fileadd = new File(path);
BufferedReader reader = null;
String tempString = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileadd),"UTF-8"));
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
if(files.length()/1024f<200){
addfile(files,tempString);
}
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 输出文件夹
* 遍历目录及其子目录下的所有文件并保存
* @param path 目录全路径
* @param myfile 列表:保存文件对象
*/
public static void listDirectory(File path, List<File> myfile){
if (!path.exists()){
System.out.println("文件名称不存在!");
}else{
if (path.isFile()){
myfile.add(path);
} else{
File[] files = path.listFiles();
for (int i = 0; i < files.length; i++ ){
if (files[i].isDirectory()) {
System.out.println("文件夹:"+files[i]);
}
listDirectory(files[i], myfile);
}
}
}
}
public static void addfile(File fileName, String content) {
FileWriter writer = null;
try {
// 打开一个写文件器
writer = new FileWriter(fileName, true); //true表示以追加形式写文件
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(writer != null){
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
上一篇: mysql数据库更新
下一篇: jQuery 与 js之入口函数