Read File
Java
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
public class ReadFile {
public static void main(String[] args) {
Scanner inFile = null;
try {
//讀取text.txt
inFile = new Scanner(new FileReader("text.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println(inFile.nextLine());
inFile.close();
}
}
Objective-C
#import <Foundation/NSString.h>
int main( int argc, char *argv[] ) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSString *inFile;
inFile = [NSString
stringWithContentsOfFile:@"text.txt"
encoding:NSUnicodeStringEncoding
error:nil];
NSLog(@"%@", inFile);
[pool release];
return EXIT_SUCCESS;
}
Write File
Java
import java.io.FileNotFoundException;
import java.io.PrintWriter;
public class WriteFile {
public static void main(String[] args) {
PrintWriter outFile = null;
try {
outFile = new PrintWriter("text.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//將「This is an output text.\n」輸入到text.txt
outFile.print("This is an output text.\n");
outFile.close();
}
}
Objective-C
#import <Foundation/NSString.h>
int main( int argc, char *argv[] ) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSString *outFile = @"This is an output text.\n";
[outFile writeToFile:@"text.txt"
atomically:YES
encoding:NSUnicodeStringEncoding
error:nil];
[pool release];
return EXIT_SUCCESS;
}
補充資料:
Objective-C各種Encode
請參考NSStringEncoding Enumeration
使用Xcode來執行無法read / write
例如上面obj-c的write file例子,這code如果makefile,然後用終端機(terminal)執行,如下所示:
clang -framework Foundation main.m -o writFileTest
./writFileTest
此時可以write沒問題。
但當你用Xcode時,就不行了……
此時xcode會把編譯出來的東西視為一個iPhone / iPad 應用程式,所以只有這樣寫是無法讀寫文檔的。
要讀寫就要先設定文檔的位置。
/*
* 由path來得到資料夾位置。然後設定documentDirectory為資料夾地址。
* fileName表示說在documentDirectory的位置中的一個叫做「text.txt」的檔案。
*
* 接著由inFile來讀取檔案內容
*
*
* PS : NSDocumentDirectory表示Document資料夾。
* 關於資料夾的資料,請參考下面的Objective-C支援的各種特定資料夾
*/
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths lastObject];
NSString *fileName = [documentDirectory stringByAppendingPathComponent:@"text.txt"];
NSString *inFile;
inFile = [NSString
stringWithContentsOfFile:fileName
encoding:NSUnicodeStringEncoding
error:nil];
write file亦同。
補充一下,使用XCode來編譯後,執行的程式會把檔案放在「$HOME/Library/Application/Support/iPhone/Simulator/」裡面的資料夾中。至於具體位置,因為裡面有資料夾是亂碼,加上會因為程式關係(看你是編譯iPhone還是iPad)所以資料夾又會不同。
Objective-C支援的各種特定資料夾
請參考NSSearchPathDirectory Enumeration
沒有留言:
張貼留言