Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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
如何在iOS中将三个文本文件的数据连接/合并为一个文本文件_Ios_Iphone_Objective C_Text Files_Concatenation - Fatal编程技术网

如何在iOS中将三个文本文件的数据连接/合并为一个文本文件

如何在iOS中将三个文本文件的数据连接/合并为一个文本文件,ios,iphone,objective-c,text-files,concatenation,Ios,Iphone,Objective C,Text Files,Concatenation,我有大麻烦了。我想将多个文本文件的数据连接到另一个文本文件中。但我不能。你能帮助我吗?非常感谢首先在NSString中加载文件内容,并使用以下代码: NSString *strConcatenate = [NSString stringWithFormat:@"%@ %@ %@", textfiles1, textfiles2, textfiles3]; NSLog(@"%@", strConcatenate); 您只需将文件内容加载到NSMutableString中,并将

我有大麻烦了。我想将多个文本文件的数据连接到另一个文本文件中。但我不能。你能帮助我吗?非常感谢

首先在
NSString
中加载文件内容,并使用以下代码:

   NSString *strConcatenate = [NSString stringWithFormat:@"%@ %@ %@", textfiles1, textfiles2, textfiles3];    
   NSLog(@"%@", strConcatenate);

您只需将文件内容加载到
NSMutableString
中,并将它们连接起来:

NSMutableString *myString = @"Content of the first file";
NSString *test = [myString stringByAppendingString:@" content of the second file"];

逐个读取每个文件

NSString *firstFileContent = [NSString stringWithContentsOfFile:<your file path>
                                                       encoding:NSASCIIStringEncoding
                                                          error:nil];

//Similarly read other files, and store them in secondFileContent and thirdFileContent.

//now concatenate all to form one big string.
NSString *bigString = [NSString stringWithFormat:@"-First File- \n%@ \n-Second File- \n%@\n-Third File-\n%@",firstFileContent, secondFileContent, thirdFileContent];

//write to file, create a new one
[bigString writeToFile:<path to write>
            atomically:YES
              encoding:NSASCIIStringEncoding
                 error:nil];
NSString*firstFileContent=[NSString stringwithcontentsofile:
编码:NSASCIIStringEncoding
错误:无];
//同样,读取其他文件,并将其存储在secondFileContent和thirdFileContent中。
//现在将所有字符串连接成一个大字符串。
NSString*bigString=[NSString stringWithFormat:@”-第一个文件-\n%@\n-第二个文件-\n%@\n-第三个文件-\n%@],第一个文件内容,第二个文件内容,第三个文件内容];
//写入文件,创建一个新文件
[bigString writeToFile:
原子论:是的
编码:NSASCIIStringEncoding
错误:无];
编辑1

根据您关于文件位于DocumentDirectory中的评论,请使用以下代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:<your file name>];
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
NSArray*path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentsDirectory=[paths objectAtIndex:0];
NSString*filePath=[DocumentsDirectoryStringByAppendingPathComponent:];
NSString*content=[NSString stringWithContentsOfFile:filePath编码:NSUTF8StringEncoding错误:NULL];

您需要从捆绑包中读取文本文件,然后将其追加,一旦读取完毕,再将其写回。我写了这个例子,希望你能从中学习

NSMutableString *mutableString = [[NSMutableString alloc] init];

NSArray *textFiles = @[ @"textfile1", @"textfile2", @"textfile3" ];

for (NSString *textFileName in textFiles) {

  NSString *path = [[NSBundle mainBundle] pathForResource:textFileName 
                                                   ofType:@"txt"];

  NSError *error = nil;
  NSString *content = [NSString stringWithContentsOfFile:path
                                                encoding:NSUTF8StringEncoding
                                                   error:&error];

  if (content) {
    [mutableString appendFormat:@"%@\n", content];
  } else {
    NSLog(@"%@", error.localizedDescription);
  }

}

NSLog(@"%@", mutableString);

NSError *error = nil;
BOOL result = [mutableString writeToFile:@"concatenated_file.txt" atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error];

if (!result) {
  NSLog(@"%@", error.localizedDescription);
}

firstFileContent
的输出是什么?我的文本文件在documentsdirectory中,因此没有从那里访问..我使用的是[[NSBundle mainBundle]pathForResource:of type:];为了访问它,我弄错了,为什么filecontents的输出为空。但是现在我弄错了。谢谢你的时间。:ye,谢谢你。但是我有一个问题。.我已经从buttoncontrol和concatenate方法调用了所有textfile创建方法,所以当我第一次单击所有按钮时。.只有第一个textfile(其内容)已创建,而所有其他文本文件均为空。第二次单击了所有已创建并连接的文本文件。有什么问题吗?发布一个新的问题和代码,以便我们可以帮助您。别忘了在那里链接这个问题。你总是在创建相同的
myFile1.txt