String log = textArea.getText();我要将这个Log 写到文本里但是如果当前写入的文本大于1m时,创建新的文件继续写入

解决方案 »

  1.   

     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;
        }
    }
      

  2.   

    呵呵,楼上那么强,随便写了一下啊!(我时随便写不出来啊 !呵呵)这个问题的 关键不时向文件的数据写入,而时在数据写入文件中对写入数据的大小的判断,
    当为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());
            }
      

  3.   

    还有你上面写的 writeFile方法不能返回为void ,这样就没有动态的实现楼主说的当文件大小为1m时,来写入一个新的文件。你要把writeFile方法返回值改为int,
    在这个方法最后调用FileInputStream类的available() 来动态的返回现在数据的大小。再在mian方法时,通过whiel(writeFile(参数)<=1024*1024)判断当值小于1m时继续写
    不然再新建文件写入,外面再一个循环就可以实现了!
      

  4.   


    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());
    }