[object-c 2.0 程序设计]object-c file handle (二)

//
//  main.m
//  cmdTry
//
//  Created by Calos Chen on 2017/8/21.
//  Copyright © 2017年 Calos Chen. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "class4.m"
#import "NSObject_class5.h"

@class Fraction;
@interface Fraction : NSObject
{
    int numberator;
    int denominator;
    NSString* name;
    @public
    double price;
    Fraction *myf;

}
@property double price;
-(void) print;
-(void) setNumberator: (int)n;
-(void) setName: (NSString*)na;
-(void) setInfo: (int) id name:(NSString*)name;

@end

@implementation Fraction

@synthesize price;

-(void) print
{
    name= [name getBy:23 andName:@"Ok"];//
    NSLog(@"%i it is %@",numberator,name);
}
-(void) setNumberator:(int)n
{
    price=5;
    numberator=n;
}
-(void)setName:(NSString *)na{
    name=na;
}

-(void) setInfo:(int)id name:(NSString *)na{
    id=id;
    name=na;
}

@end

//---- program section ----

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        NSLog(@"who are you!");
    }
    NSNumber *xdd;
    xdd=[NSNumber numberWithInt:45];

    NSLog(@"why is it");
    Fraction *myf= [[Fraction alloc] init];
    [myf setName:@"calos"];
    [myf print];
    double price=myf->price;

    int a1=5;
    float a2=3.23;
    double a3=3.44;
    char a4=‘c‘;
    int a5=(int)a2;
    for (int b=1; b<10;b++ ) {
        a5+=b;
    }
    myf.price=88;
    double b1=myf.price;
    BOOL isPrime=NO;
    NSLog(@"%i %f %e %c %i %c %g %e",a1,a2,a3,a4,a5,isPrime,b1,price);
    NSLog(@"end........");

    //file write
    NSFileManager* fm=[NSFileManager defaultManager];
    NSString* [email protected]"a.txt";
    NSFileHandle* fh=[NSFileHandle new];
    NSData* data=nil;
    NSCoder* coder=[NSCoder new];
    [fm createFileAtPath:fname contents:nil attributes:nil];
    if([fm isReadableFileAtPath:fname]){
        [fh writeData:data];
    }
    else{
        [[fh initWithCoder:coder] writeData:data];
    }

    // 初始化管理类
    NSFileManager * manager = [NSFileManager
                               defaultManager];

    // 路径
    NSString * DirectoryPath = [NSHomeDirectory()
                                stringByAppendingPathComponent:@"/desktop/我的文件夹1/我的文件夹2"];

    NSError * error =
    nil;
    if ([manager
         createDirectoryAtPath:DirectoryPath
         withIntermediateDirectories:NO
         attributes:nil
         error:&error] !=
        YES) {
        //            NSString * str = [error localizedDescription];
        NSLog(@"创建失败");
    }else {
        //            NSString * str = [error localizedDescription];
        NSLog(@"创建成功");
    }

    //file handle

    NSFileHandle *inFile, *outFile;
    NSData *buffer;
    NSData* d1=[@"sss" dataUsingEncoding:NSUTF8StringEncoding];
    [[NSFileManager defaultManager] createFileAtPath:@"test.txt" contents:d1 attributes:nil];

    //打开testfile.txt文件用于读取操作
    inFile = [NSFileHandle fileHandleForReadingAtPath:@"testfile.txt"];

    if(inFile == nil)
    {
        NSLog(@"Open of testfile.txt for reading failed!");
        return 1;
    }

    //创建一个文件用于写数据(第一次是必要的)
    [[NSFileManager defaultManager] createFileAtPath:@"testout.txt" contents:nil attributes:nil] ;

    //打开testout.txt文件用于写入操作
    outFile = [NSFileHandle fileHandleForWritingAtPath:@"testout.txt"];

    if(outFile == nil)
    {
        NSLog(@"Open of testout.txt for writing failed!");
        return 2;
    }

    //
    [outFile truncateFileAtOffset:0];

    //从inFile中读取数据,并将其写入到outFile中
    buffer = [inFile readDataToEndOfFile];

    [outFile writeData:buffer];

    //关闭两个文件
    [inFile closeFile];
    [outFile closeFile];

    return 0;
}

//for today: 2017-08-21, I have read and practiced the first 153 pages of the object-c 2.0, now, I have known object-c classes and data types, and how to announce and implement the classes and class members, as well as functions in the class implementation. also property synthesize methods. loops.
//homework: implement a new class, and new interface and fill the class with members and all tangible members, then use all of them. @class declaration. So, write a console program with object-c.

目前可以使用 Object-c 的 file 处理, 可以操作目录,并读写文件, 控制台程序生成了正常的文件,感觉比较欣慰,文件处理也算蛮大的一步了,知道了一些 oc 常用的库处理,在渐渐地变熟练

时间: 2024-10-07 07:04:16

[object-c 2.0 程序设计]object-c file handle (二)的相关文章

.Net 4.0 Convert Object to XDocument

将Object转换为XDocment对象 代码如下: C# – Object to XDocument 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Xml.Linq; 6 using System.IO; 7 using System.Xml.Serialization; 8 using System.Xml; 9 10 n

* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’

错误描述: * -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]' 错误分析: 这个问题,一般是因为 nsarray或nsdictionary插入数据为空而造成的,例如从服务器获取的数据,服务器端参数更改后,这个参数承接的原参数会找不到值.因此,再将此参数传送给其他地方,如(nsarray或nsdictionary).将出现以上错误.解

document.forms[0].submit object is not a function

今天在做项目的时候发现了一个问题:document.forms[0].submit object is not a function. 这个问题是在用JavaScript 代码来提交一个表单时发生的. <form action=".action" method="post"> <input type="text" name="member.name"/> <input type="but

wxWidgets 2.8.x &amp; 3.0.x project property file (.props in MSVC++)

the following files are the wxWidgets 2.8.x project property file: <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Impo

关于 warning CS0659:“***”重写Object.Equals(object o)但不重写Object.GetHashCode()

对象相等性和同一性 System.Object 类型提供了以下方法, 1 namespace System 2 { 3 // 4 // 摘要: 5 // 支持 .NET Framework 类层次结构中的所有类,并为派生类提供低级别服务.这是 .NET Framework 中所有类的最终基类:它是类型层次结构的根. 6 [ClassInterface(ClassInterfaceType.AutoDual)] 7 [ComVisible(true)] 8 public class Object

把List&lt;Map&lt;String,Object&gt;&gt;转成Map&lt;String,Object&gt;

Map<String, Object> parmMap = new HashMap<String, Object>(); //定义一个用于存储强转后的Map List<Map<String, Object>> findActivityList = groupConfigDao.findActivityList(); //查询List<Map>里的数据 //List<Map<String, Object>> (findAct

20172303 2018-2019-1 《程序设计与数据结构》实验二报告

20172303 2018-2019-1 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张师瑜/张之睿 实验日期:2018年11月5日 必修/选修: 必修 实验内容 本次实验主要是关于树的应用, 涉及了二叉树.决策树.表达式树.二叉查找树.红黑树五种树的类型,是对最近学习内容第十章和第十一章的一个总结. 节点一 参考教材P212,完成链树LinkedBinaryTree的实现(get

[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 多线程高级应用

[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 多线程高级应用 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET多线程中的高级应用. 主要有在线程资源共享中的线程安全和线程冲突的解决方案:多线程同步,使用线程锁和线程通知实现线程同步. 1. ThreadStatic特性 特性:[ThreadStatic] 功能:指定静态字段在不同线程中拥有不同的值 在此之前,我们先看一个多线程的示例: 我们定义一个静态字段: static

172303 2017-2018-2 《程序设计与数据结构》实验二报告

172303 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张旭升/刘伟康 实验日期:2018年4月17日 必修/选修: 必修 1.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成蓝墨云上 (1)-(5)实验. 2.实验过程及结果 过程: 本次实验老师一共设置了5