java 写文件问题 String log = textArea.getText();我要将这个Log 写到文本里但是如果当前写入的文本大于1m时,创建新的文件继续写入 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) { File fl = new File(); String path = "C:\\"; String filename1 = "aa"; int num = 0; try { while (num < 2) { filename1 = filename1 + num + ".txt"; fl.createAndDeleteFile(path, filename1); if (fl.fileSize(path, filename1, num) == true) { fl.writeFile(path, filename1, "ssss"); } filename1 = "aa"; num++; } } catch (Exception e) { System.err.println(e.toString()); }public class File { public void writeFile(String filePath, String fileName, String args) { try { FileWriter fw = new FileWriter(filePath + fileName); fw.write(args); fw.close(); } catch (Exception e) { System.out.println(e.toString()); } } public boolean fileSize(String filePath, String fileName, int size) { boolean re = false; try { java.io.File flie2 = new java.io.File(filePath, fileName); FileInputStream fi = new FileInputStream(flie2); if (fi.available() / 1024 / 1024 > size) { re = true; } } catch (Exception e) { System.out.println(e.toString()); } return re; } public boolean createAndDeleteFile(String filePath, String fileName) { boolean result = false; try { java.io.File filel = new java.io.File(filePath + fileName); filel.createNewFile(); } catch (Exception e) { System.out.println(e.toString()); } return result; }} 呵呵,楼上那么强,随便写了一下啊!(我时随便写不出来啊 !呵呵)这个问题的 关键不时向文件的数据写入,而时在数据写入文件中对写入数据的大小的判断,当为1m时,新建一个新的文件来写。楼上朋友写的基本思路对,就时把写文件和判断文件大小专门写函数对应。但还时不能满足楼主的要求,public static void main(String[] args) { File fl = new File(); String path = "C:\\"; String filename1 = "aa"; int num = 0; try { while (num < 2) { filename1 = filename1 + num + ".txt"; fl.createAndDeleteFile(path, filename1); if (fl.fileSize(path, filename1, num) == true) {//你这里只是对空文件进行判断大小 fl.writeFile(path, filename1, "ssss"); } filename1 = "aa"; num++; } } catch (Exception e) { System.err.println(e.toString()); } 还有你上面写的 writeFile方法不能返回为void ,这样就没有动态的实现楼主说的当文件大小为1m时,来写入一个新的文件。你要把writeFile方法返回值改为int,在这个方法最后调用FileInputStream类的available() 来动态的返回现在数据的大小。再在mian方法时,通过whiel(writeFile(参数)<=1024*1024)判断当值小于1m时继续写不然再新建文件写入,外面再一个循环就可以实现了! File f=new File("c:\\abc.txt");FileWriter fw = new FileWriter(f);BufferedWriter bw=new BufferedWriter(fw); while((double)f.length()/1024/1024<=1){Scanner ss=new Scanner(System.in);bw.write(ss.next());} 关于迅雷的线程题,再发一贴 Java泛型的问题,新手跪求答案 该怎么定义使用对象数组 java 编译报错 “ 需要']' ”? 怎么在火狐浏览器下运行applet jar包 java在man方法中,是不是越少越好? 怎么操作控件 JTextField 当文字激发事件 用actionEvent adjustmenEvent 都不行 :( 有关jdo,初学jdo,但怎么也找不到javax.jdo这个包 语法错误,大神们帮忙看看 输入int数据可是无法被Scanner读入。。 java 中进程与线程咨询,以及JAVA线程占用CPU 高的问题
File fl = new File();
String path = "C:\\";
String filename1 = "aa";
int num = 0;
try {
while (num < 2) {
filename1 = filename1 + num + ".txt";
fl.createAndDeleteFile(path, filename1);
if (fl.fileSize(path, filename1, num) == true) {
fl.writeFile(path, filename1, "ssss");
}
filename1 = "aa";
num++;
}
} catch (Exception e) {
System.err.println(e.toString());
}public class File { public void writeFile(String filePath, String fileName, String args) {
try {
FileWriter fw = new FileWriter(filePath + fileName);
fw.write(args);
fw.close();
} catch (Exception e) {
System.out.println(e.toString());
} } public boolean fileSize(String filePath, String fileName, int size) {
boolean re = false;
try { java.io.File flie2 = new java.io.File(filePath, fileName);
FileInputStream fi = new FileInputStream(flie2);
if (fi.available() / 1024 / 1024 > size) {
re = true;
}
} catch (Exception e) {
System.out.println(e.toString());
} return re;
} public boolean createAndDeleteFile(String filePath, String fileName) {
boolean result = false;
try {
java.io.File filel = new java.io.File(filePath + fileName);
filel.createNewFile(); } catch (Exception e) {
System.out.println(e.toString());
} return result;
}
}
当为1m时,新建一个新的文件来写。楼上朋友写的基本思路对,就时把写文件和判断文件大小专门写函数对应。但还时不能满足楼主的要求,public static void main(String[] args) {
File fl = new File();
String path = "C:\\";
String filename1 = "aa";
int num = 0;
try {
while (num < 2) {
filename1 = filename1 + num + ".txt";
fl.createAndDeleteFile(path, filename1);
if (fl.fileSize(path, filename1, num) == true) {//你这里只是对空文件进行判断大小
fl.writeFile(path, filename1, "ssss");
}
filename1 = "aa";
num++;
}
} catch (Exception e) {
System.err.println(e.toString());
}
在这个方法最后调用FileInputStream类的available() 来动态的返回现在数据的大小。再在mian方法时,通过whiel(writeFile(参数)<=1024*1024)判断当值小于1m时继续写
不然再新建文件写入,外面再一个循环就可以实现了!
File f=new File("c:\\abc.txt");
FileWriter fw = new FileWriter(f);
BufferedWriter bw=new BufferedWriter(fw);
while((double)f.length()/1024/1024<=1){
Scanner ss=new Scanner(System.in);
bw.write(ss.next());
}