Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从文件中读取内容,然后将其复制到另一个文件(更新的代码)_Java_String_File_Loops_Search - Fatal编程技术网

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

Java 从文件中读取内容,然后将其复制到另一个文件(更新的代码),java,string,file,loops,search,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 =

代码如下:

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

    }


}
FileReader fr=newfilereader(“datos_clientes.txt”);
BufferedReader br=新的BufferedReader(fr);
而((line=br.readLine())!=null){
字符串nameMark=“#n”;
字符串addressMark=“#d”;
int nameStart=line.indexOf(nameMark)+nameMark.length();
int addressStart=line.indexOf(addressMark)+addressMark.length();
String name=line.substring(nameStart,addressStart-addressMark.length());
字符串地址=line.substring(addressStart,line.length());
if(行startsWith(“tipo1”)){
FileWriter fw=新的FileWriter(名称+“.txt”);
char[]vector=name.toCharArray();
char[]vector2=address.toCharArray();
int指数=0;
while(索引<向量长度){
fw.write(向量[index]+vector2[index]);
索引++;
}
fw.close();
}else if(行startsWith(“tipo2”)){
FileWriter fw=新的FileWriter(名称+“.txt”);
char[]vector=name.toCharArray();
char[]vector2=address.toCharArray();
int指数=0;
while(索引<向量长度){
fw.write(向量[index]+vector2[index]);
索引++;
}
fw.close();
}
else if(行startsWith(“tipo3”)){
FileWriter fw=新的FileWriter(名称+“.txt”);
char[]vector=name.toCharArray();
char[]vector2=address.toCharArray();
int指数=0;
while(索引<向量长度){
fw.write(向量[index]+vector2[index]);
索引++;
}
fw.close();
}
}
我想从这段代码中得到的是用收件人的姓名和地址创建每个新文件。 新文件只显示随机字母字符的组合

然后,我有三个预先制作的文件,我必须在每个新文件中包含这些文件,例如,如果其中一个新文件是“Maria Roberts.txt”,此人将收到一封“type 1”信,我希望文件(Maria Roberts.txt)包含姓名、地址和文件“type1.txt” 我不知道怎么做

我知道我在每一个新问题中都会添加一些东西。。。对不起,我想我更容易理解它。
再次感谢

将名称数组中的一个字符与地址数组中的一个字符相加,然后输出结果

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++;
        }
int索引=0;
while(索引<向量长度){
fw.write(向量[索引]);
索引++;
}
指数=0;
while(索引<向量2.长度){
fw.write(向量2[index]);
索引++;
}

这只会将它们粘在一起,但你可以利用你的想象力,找出如何按你想要的方式将它们分开。

你的错误是否说明是哪一行造成的?还有,
如果(…tipo2..)
如果
的代码完全相同,那么它的意义是什么?是否有可能在您的任何输入中丢失“#n”或“#a”?Erick是对的!在子字符串操作中使用索引之前,应该始终检查索引是否为“>=0”。是的,他是对的!谢谢现在,我如何用接收文件的人的名字来命名文件@埃里克,哈格斯特罗姆·汉克斯!我现在有个问题。在新文件中,我也需要写入地址,当我这样做时,文件中的文本被混淆了。我怎样才能做好呢@谢谢你的帮助!要将另一个文件的内容写入新文件,我该怎么做?来吧,@Maria。试试看。您已经知道了实现此功能所需的一切信息。:-)