2016-04-20 2 views
1

Я использовал для кодирования в java, но теперь я хочу переместить свое приложение в iOS с помощью swift 2. Так что я хочу, чтобы метод добавлял текст в новую строку к существующему файлу txt в приложениях.Добавить новую строку в txt-файл в swift 2

Я искал и пытался так много методов, но его все перезапись в новый текстовый файл

В Java я использовал этот метод

PrintWriter out=null; 
     try { 
      out=new PrintWriter(new FileWriter("file.txt",true)); 

        out.println("some txt"} 


       out.close(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

ответ

5

Я думаю, вы должны использовать NSFileHandle:

let dir:NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.CachesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as NSURL 
    let fileurl = dir.URLByAppendingPathComponent("file.txt") 

    let string = "\(NSDate())\n" 
    let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)! 

    if NSFileManager.defaultManager().fileExistsAtPath(fileurl.path!) { 
     var error:NSError? 
     if let fileHandle = NSFileHandle(forWritingToURL: fileurl, error: &error) { 
      fileHandle.seekToEndOfFile() 
      fileHandle.writeData(data) 
      fileHandle.closeFile() 
     } 
     else { 
      println("Can't open fileHandle \(error)") 
     } 
    } 
    else { 
     var error:NSError? 
     if !data.writeToURL(fileurl, options: .DataWritingAtomic, error: &error) { 
      println("Can't write \(error)") 
     } 
    } 
10

Вы можете использовать метод ниже, чтобы добавить строку в файл

func writeToFile(content: String, fileName: String) { 

    let contentToAppend = content+"\n" 
    let filePath = NSHomeDirectory() + "/Documents/" + fileName 

    //Check if file exists 
    if let fileHandle = NSFileHandle(forWritingAtPath: filePath) { 
     //Append to file 
     fileHandle.seekToEndOfFile() 
     fileHandle.writeData(contentToAppend.dataUsingEncoding(NSUTF8StringEncoding)!) 
    } 
    else { 
     //Create new file 
     do { 
      try contentToAppend.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding) 
     } catch { 
      print("Error creating \(filePath)") 
     } 
    } 
} 
Смежные вопросы