copy 一个txt文件x行到x行复制到另外一个文件/复制文件内容

本文介绍了使用PHP、C、C#、Java及Python等不同编程语言处理文本文件的方法,包括从源文件中读取特定行并将其写入新文件的过程。每种语言实现方式各异,但目标一致:从一个文本文件中复制指定行到另一个文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php写法

<?php
$str = file_get_contents('h:/test.txt','r');
preg_match_all("#(.*\n)#i", $str,$arr);
print_r($arr);
//file_put_contents('h:/1.txt', $arr);
$fp = fopen('h:/1.txt','r');
$fp2 = fopen('h:/2.txt','w+');
for($i=0;$i<count($arr[0]);$i++){
    if($i>32678){
     fputs($fp2,$arr[0][$i]);
    }
}

c写法

#include <stdio.h> 
 
 int main() 
 { 
     int i = 0;
     char filename[] = "H:/1.txt"; 
     char filename2[] = "H:/2.txt"; 
     FILE *fp,*fp2; 
     char StrLine[1024];            
     if((fp = fopen(filename,"r")) == NULL) 
     { 
         printf("error!"); 
         return -1; 
     } 
     
     if((fp2 = fopen(filename2,"w+")) == NULL) 
     { 
         printf("error!"); 
         return -1; 
     } 
 
     while (!feof(fp)) 
     { 	
   		 fgets(StrLine,1024,fp);  
     	 if(i>=32567){
	         fgets(StrLine,1024,fp);  
	         fputs(StrLine, fp2); 
	     }
	     i++;
     } 
     fclose(fp);     
     fclose(fp2);                 
     return 0; 
 }


c#写法

using System.IO;
using System.Text;

public class TestIO  {

    string sourcePath = "H:/1.txt";
    string targetPath = "H:/2.txt";

    public void CopyFile(string sourcePath, string targetPath,int startLine,int endLine)
    {
        StreamReader sr = new StreamReader(sourcePath, Encoding.Default);
        StreamWriter sw = new StreamWriter(targetPath, true);

        string line = "";

        int count = 0;
        while ((line = sr.ReadLine()) != null)
        {
            count++;
            if(count>=startLine && count <= endLine)
            {
                sw.WriteLine(line);
            }

        }
        sr.Close();
        sw.Close();
    }
    CopyFile(sourcePath,targetPath,32576,55460);
   
}


java写法

package fileCopy;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Copy {
	public static void main(String[] args) {
		File file1 = new File("H:/1.txt");
		File file2 = new File("H:/2.txt");
		try {
			copy(file1, file2, 0, 2);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void copy(File file1, File file2, int start, int end) throws IOException {
		FileOutputStream fos = new FileOutputStream(file2);
		FileInputStream fis = new FileInputStream(file1);

		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
		BufferedReader br = new BufferedReader(new InputStreamReader(fis));

		String temp = "";
		for (int i = 0;null != temp && i < start; i++) {
		 	temp = br.readLine();
		}
		for (int i = 0;null != temp && i < end - start; i++) {
			String t = br.readLine();
			bw.write(t+"\n");
		}
		
		br.close();
		bw.flush();
		bw.close();
		fis.close();
		fos.flush();
		fos.close();
	}
}
python写法
#-*- coding:utf-8 -*-

import os
path=u"H:\\a\\"
allFiles = os.listdir(path)
for eachFile in allFiles:
    inputFile = open(path+eachFile, "r");
    print "Name of the input file: ", inputFile.name;
    outputFile = open(path+eachFile[0:-4]+"43563-59123.txt", "a");
    allLines =  inputFile.readlines();
    for i in range(43563-1,59123-1):
        outputFile.write(allLines[i]);
    inputFile.close();
    outputFile.close();

print "OK!"
linux下的shell编程
sed -n '4,5p' 1.txt > 2.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值