文件I/O操作(java和c++區別)

  • java的I/O操作

關聯文件用文件操作類:File

   File常用方法:

對文件內容進行讀寫操作:字節操作流 or 字符操作流

字節操作流
字符操作流

舉個例子:

    package edu.thu.keyword.test;  
      
    import java.io.File;  
    import java.io.InputStreamReader;  
    import java.io.BufferedReader;  
    import java.io.BufferedWriter;  
    import java.io.FileInputStream;  
    import java.io.FileWriter;  
      
    public class cin_txt {  
        static void main(String args[]) {  
            try { // 防止文件建立或讀取失敗,用catch捕捉錯誤並打印,也可以throw  
      
                /* 讀入TXT文件 */  
                String pathname = "D:\\twitter\\13_9_6\\dataset\\en\\input.txt"; // 絕對路徑或相對路徑都可以,這裏是絕對路徑,寫入文件時演示相對路徑  
                File filename = new File(pathname); // 要讀取以上路徑的input。txt文件  
                InputStreamReader reader = new InputStreamReader(  
                        new FileInputStream(filename)); // 建立一個輸入流對象reader  
                BufferedReader br = new BufferedReader(reader); // 建立一個對象,它把文件內容轉成計算機能讀懂的語言  
                String line = "";  
                line = br.readLine();  
                while (line != null) {  
                    line = br.readLine(); // 一次讀入一行數據  
                }  
      
                /* 寫入Txt文件 */  
                File writename = new File(".\\result\\en\\output.txt"); // 相對路徑,如果沒有則要建立一個新的output。txt文件  
                writename.createNewFile(); // 創建新文件  
                BufferedWriter out = new BufferedWriter(new FileWriter(writename));  
                out.write("我會寫入文件啦\r\n"); // \r\n即爲換行  
                out.flush(); // 把緩存區內容壓入文件  
                out.close(); // 最後記得關閉文件  
      
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }  
  • C++的I/O操作

關聯文件使用:open()函數

   包含頭文件:

#include<stdio.h>

格式:FILE * fopen(const char * path,const char * mode)
參數: path:需要打開的文件路徑
mode:文件打開方式

對文件內容進行讀寫操作:fread()函數和fwrite()函數

// 讀取文件塊數據

size_t fread(void *buffer, size_t size, size_t count, FILE *file);

// 寫入文件塊數據

size_t fwrite(const void *buffer, size_t size, size_t count, FILE *file);


fread參數說明:buffer是讀取數據後存放地址,size是的塊長度,count是塊的數量,實際讀取長度爲size*count,返回值爲塊成功讀取塊的count數量。

fwrite參數說明:buffer是寫入數據後存放地址,size是的塊長度,count是塊的數量,實際讀取長度爲size*count,返回值爲塊成功寫入快的count數量。

 舉個例子:

#include <stdio.h>  
using namespace std;
int main()  
{  
    int num;  
    char name[5];  
    FILE *fp;  
    if ((fp = fopen("d://a.txt", "w")) == NULL)  
        printf("cannot open file!\n");  
   scanf("%d %s",&num,name);  
   fprintf(fp, "%d %s", num, name);  
   fclose(fp);  
   if ((fp = fopen("d://b.txt", "w")) == NULL)  
        printf("cannot open file!\n");  
   fwrite(&num, sizeof(int), 2, fp);  
   fwrite(name, sizeof(char), 5, fp);  
   fclose(fp);   
} 

 PS:C++還有一種文件操作方法:(ofstream,ifstream,fstream) ,放參考文獻了

相關文獻:

1.

https://blog.csdn.net/l740450789/article/details/49005325?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

2.

https://blog.csdn.net/kingstar158/article/details/6859379?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章