从文件中读取内容,然后将其复制到另一个文件(更新后的代码)

时间:2016-01-12 18:17:31

标签: java string file loops search

以下是代码:

    FileReader fr = new FileReader("datos_clientes.txt");
    BufferedReader br = new BufferedReader(fr);

    while ((line = br.readLine()) != null) {
        String nameMark = "#n";
        String addressMark = "#d";

        int nameStart = line.indexOf(nameMark) + nameMark.length();
        int addressStart = line.indexOf(addressMark) + addressMark.length();
        String name = line.substring(nameStart, addressStart - addressMark.length());
        String address = line.substring(addressStart, line.length());
        if (line.startsWith("tipo1.")) {
            FileWriter fw = new FileWriter(name +".txt");
            char[] vector = name.toCharArray();
            char[] vector2 = address.toCharArray();
            int index = 0;
            while (index < vector.length) {
                fw.write(vector[index]+vector2[index]);

                index++;
            }
            fw.close();
        } else if (line.startsWith("tipo2.")) {
            FileWriter fw = new FileWriter(name +".txt");
            char[] vector = name.toCharArray();
            char[] vector2 = address.toCharArray();
            int index = 0;
            while (index < vector.length) {
                fw.write(vector[index]+vector2[index]);

                index++;
            }


        fw.close();
        }

        else if (line.startsWith("tipo3.")) {
            FileWriter fw = new FileWriter(name +".txt");
            char[] vector = name.toCharArray();
            char[] vector2 = address.toCharArray();
            int index = 0;
            while (index < vector.length) {
                fw.write(vector[index]+vector2[index]);

                index++;
            }
            fw.close();

    }


}

我希望从此代码中创建每个新文件,其中包含收件人的姓名及其地址。 新文件只显示随机字母字符组合。

然后我有三个预制文件,我必须在每个新文件中包含这些文件,例如,如果其中一个新文件是&#34; Maria Roberts.txt&#34;这个人会得到一个&#34;类型1&#34;我希望文件(Maria Roberts.txt)包含名称,地址和文件&#34; type1.txt&#34; 我不知道该怎么做。

我知道我在每个新问题中添加内容...对不起,我觉得理解它会更容易。 再次感谢!

1 个答案:

答案 0 :(得分:1)

您正在从名称数组中添加一个字符,其中一个字符来自地址数组,然后输出结果。

fw.write(vector[index]+vector2[index]);

相反,您想要编写整个名称数组,然后(在不同的循环中)写入整个地址数组。

        int index = 0;
        while (index < vector.length) {
            fw.write(vector[index]);
            index++;
        }
        index = 0;
        while (index < vector2.length) {
            fw.write(vector2[index]);
            index++;
        }

这只会把它们粘在一起,但你可以运用你的想象力,弄清楚如何按照你想要的方式将它们分开。