文件读写【快速参考】

有的语言好久不用,经常忘了基本的语法,而文件读写操作比较常用,因此记录下,以便快速参考。

1 C++

 

 1  #include <iostream.h>
 2  #include <fstream.h>
 3  #include <stdlib.h>
 4 
 5  int main()
 6 {
 7    // ofstream constructor opens file
 8    ofstream outClientFile( "clients.dat", ios::out );
 9 
10    if ( !outClientFile ) {  // overloaded ! operator
11      cerr << "File could not be opened" << endl;
12      exit( 1 );  
13    }
14 
15    cout << "Enter the account, name, and balance.\n"
16         << "Enter end-of-file to end input.\n? ";
17 
18    int account;
19    char name[ 30 ];
20    float balance;
21 
22    while (cin >> account >> name >> balance ) {
23      outClientFile << account << ' ' << name<< ' ' << balance << '\n';
24      cout << "";
25    }
26 
27    return 0;   
28 }

 MFC CFile CStdioFile

 1 //按行读
 2 CStdioFile f("test.txt",CFile::modeRead);
 3     CString str;
 4     
 5     while(f.ReadString(str))
 6     {
 7 
 8          AfxMessageBox(str);
 9     }
10 f.Close();
11 
12 //
13 CStdioFile fo("testo.txt",CFile::modeWrite);
14 fo.WriteString("Haha");
15 fo.WriteString("Haha2");
16 fo.Close();

 

  

2 C#

 

 1 StreamReader r = new StreamReader(@"D:\test.txt",Encoding.Default);
 2 StreamWriter w = new StreamWriter((@"D:\testout.txt"));
 3  while(!r.EndOfStream){
 4       try{
 5              String tmp = r.ReadLine();
 6              w.WriteLine(tmp);
 7 
 8      }catch(Exception e){
 9      }
10 }

 

 

3  Python

较为简单:

f = open('filename''r')
for line in f.readlines():
     print line ,
f.close

fo = open('foname''w')
fo.write('sth')

fo.close()

 

方法                                     描述
f.read([n])                            读取至多 n 字节
f.readline([n])                      读取一行中的前 n 字符。如果 n 被省略,就读取整行
f.readlines()                         读取所有的行并返回一个包含所有行的列表
f.xreadlines()                       返回一个迭代器,每次迭代返回文件的一个新行
f.write(s)                               将字符串 s 写入文件
f.writelines(l)                         将列表 l 中的所有字符串写入文件
f.close()                                 结束文件
f.tell()                                    返回当前的文件指针
f.seek(offset [, where])         定位到一个新的文件位置
f.isatty()                                 如果 f 是一个交互式终端则返回 1
f.flush()                                  刷新输出缓冲区
f.truncate([size])                   如果文件长于 size 就截短它至 size 大小
f.fileno()                                返回一个整型的文件描述符
f.readinto(buffer ,nbytes)    读取 n 字节数据至一个 buffer 对象。

 

内建函数raw_input(prompt)也可以从stdin中读取并保存内容
在解释器启动时,sys.stdout, sys.stdin及sys.stderr可以分别使用sys.stdout, sys.stdin, 和 sys.stderr这三个名字来访问。

 

4 Java

比较常用的文本读取、输出(还有其他的很多文件类,略去)

注意:字符流,字节流

 1 //输出
 2 FileWriter fw  = new FileWriter("path");
 3 PrintWriter out = new PrintWrite(fw);
 4 out.println("sth");
 5 
 6 //输入
 7 File f = new File("path");
 8 Scanner s =  new Scanner(f);
 9 while(s.hasNext()) {
10       String str = s.nextLine();
11 }

 

 

 

posted @ 2011-11-02 22:55  Keosu  阅读(285)  评论(0编辑  收藏  举报