首页 > 博客 > 正文

Iphone文件处理——使用Documents文件夹

Documents文件夹是存储应用程序所用文件的地方,下面这个例子是向Documents文件夹添加一个txt文件并写入内容,然后读取这个文件的内容到屏幕上(在下面那幅图中,先在上面那个文本筐中输入内容,然后点击“点击保存到Documents文件夹中”按钮,这样就会将输入在文本筐中的内容保存到文件中,当点击“点击读取保存的文件内容”按钮时就会将文件中的内容显示在下面的文本标签中):

1.新建一个View-based Application项目,在Interface Builder中添加一些视图控件,如下图所示:

2.在.h文件中添加如下代码(控件和成员变量之间的连接就省了):

  1. #import <UIKit/UIKit.h>
  2. @interface FileToDocuments : UIViewController {
  3. IBOutlet UITextField *mytextfield;
  4. IBOutlet UILabel *mylabel;
  5. NSString *filepathDocu;//文件路径
  6. IBOutlet UIScrollView *myscrollview;
  7. }
  8. @property(nonatomic,retain)UITextField *mytextfield;
  9. @property(nonatomic,retain)UILabel *mylabel;
  10. @property(nonatomic,retain) UIScrollView *myscrollview;
  11. @property(nonatomic,retain)NSString *filepathDocu;
  12. -(IBAction)writeToFile;//将字符串写入文件
  13. -(IBAction)readFromFile;//读取文件内容
  14. -(NSString *)getDocumentsPath;//获取Documents文件所在的目录
  15. -(IBAction)tuichujianpan:(id)sender;
  16. @end




3.在.m文件中第一如下几个方法,每个方法上面都有说明,这里就不重复了:

  1. //获取Documents文件夹路径
  2. -(NSString *)getDocumentsPath{
  3. NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  4. NSString *documentsDir = [path objectAtIndex:0];
  5. return documentsDir;
  6. //获取临时文件tmp路径的代码:return NSTemporaryDirectory();
  7. }

 

  1. //将输入到文本筐中的字符保存到文件中,这个方法是界面上“点击保存到Documents文件夹中”按钮的点击事件
  2. -(IBAction) writeToFile{
  3. NSMutableArray *array = [[NSMutableArray alloc]init];
  4. [array addObject:mytextfield.text];
  5. [array writeToFile:self.filepathDocu atomically:YES];
  6. [array release];
  7. }

 

  1. //读取所保存的文件到lable中,这个方法是界面上“点击读取保存的文件内容”按钮的点击事件
  2. -(IBAction)readFromFile{
  3. if ([[NSFileManager defaultManager] fileExistsAtPath:self.filepathDocu]) {
  4. NSArray *array = [[NSArray alloc]initWithContentsOfFile:self.filepathDocu];
  5. NSString *data = [NSString stringWithFormat:@“%@”,[array objectAtIndex:0]];
  6. mylabel.text = data;
  7. [array release];
  8. }
  9. }


4.在viewDidLoad方法里面为文件路径赋值和设置scrollview的大小:

  1. – (void)viewDidLoad
  2. {
  3. //成员变量在用的时候一定要写上self,否则有时候会出错
  4. self.filepathDocu = [[self getDocumentsPath] stringByAppendingPathComponent:@“data.txt”];
  5. myscrollview.frame = CGRectMake(0, 0, 320, 460);
  6. [myscrollview setContentSize:CGSizeMake(320,599)];
  7. [super viewDidLoad];
  8. // Do any additional setup after loading the view from its nib.
  9. }

5.当点击文本筐后键盘就会弹出来,但是不作处理的话键盘是不会消失的,这样给用户的体验不好,所以当我们点击键盘的return按钮之后就要隐藏键盘,这里定义一个方法,这个方法的作用是将当前控件移除其First Responder状态,这样键盘就会隐藏了,不过需要将界面中Text Field视图的Did End on Exit事件与这个方法相连:

  1. //退出键盘
  2. -(IBAction)tuichujianpan:(id)sender{
  3. [sender resignFirstResponder];
  4. }
Back