一些语言的按行读取文件的代码实现小结

时间:2022-01-26 07:19:34

Java实现

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import java.io.BufferedReader;
 
import java.io.BufferedWriter;
 
import java.io.FileNotFoundException;
 
import java.io.FileReader;
 
import java.io.FileWriter;
 
import java.io.IOException;
 
 
 
public class JavaFile {
 
  public static void main(String[] args) {
 
   try {
 
   // read file content from file
 
   StringBuffer sb= new StringBuffer("");
 
   
 
   FileReader reader = new FileReader("c://test.txt");
 
   BufferedReader br = new BufferedReader(reader);
 
   
 
   String str = null;
 
   
 
   while((str = br.readLine()) != null) {
 
     sb.append(str+"/n");
 
     
 
     System.out.println(str);
 
   }
 
   
 
   br.close();
 
   reader.close();
 
   
 
   // write string to file
 
   FileWriter writer = new FileWriter("c://test2.txt");
 
   BufferedWriter bw = new BufferedWriter(writer);
 
   bw.write(sb.toString());
 
   
 
   bw.close();
 
   writer.close();
 
  }
 
  catch(FileNotFoundException e) {
 
     e.printStackTrace();
 
   }
 
   catch(IOException e) {
 
     e.printStackTrace();
 
   }
 
  }
 
 
 
}

 

C++实现

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<string>
#include<iostream>
#include<stdlib.h>
#include<fstream>
int main()
{
std::string file_name="123";
std::ifstream fin(file_name.c_str());
std::string textline[3];
for(int i=0;i<3;++i)
 getline(fin,textline[i],'\n');//遇到换行结束这一行的读取
for(int i=0;i<3;++i)
std::cout<<textline[i]<<'\n';
 
return 0;
}

php实现

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
/**
 * 按行读取文件
 * @param string $filename
 */
function readFileByLine ($filename)
{
 $fh = fopen($filename, 'r');
  
 while (! feof($fh)) {
  $line = fgets($fh);
  echo $line;
 }
  
 fclose($fh);
}
 
// test
 
$filename = "/home/wzy/test/sort.txt";
 
readFileByLine($filename);

c语言实现

  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define LEN 1024
 
int main(void)
{
 char filename[LEN], buf[LEN];
 FILE *fp;
 int len;
 
 scanf("%s", filename);
 
 fp = fopen(filename, "r");
 
 if (fp == NULL) exit(-1);
 
 while (fgets(buf, LEN, fp) != NULL) {
  len = strlen(buf);
  buf[len - 1] = '\0'; // 去掉换行符
 
  printf("%s\n", buf);
 }
 
 return 0;
}