<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.2.4</version>
</dependency>
public static void main(String[] args) {
List<String> readLines = FileUtil.readLines("D:\\test.txt", "UTF-8");
List<String> stringList = readLines.subList(0, 4);
StringBuilder sb = new StringBuilder();
for (String str : stringList) {
sb.append(str).append("\n");
}
FileUtil.writeBytes(sb.toString().getBytes(), "D:\\test3.txt");
}
这里用c++给个例子,题目应该说清楚txt什么内容,编程语言是什么。 https://www.imooc.com/wenda/detail/532759 A文件中,内容是这样的:
[fullText]abcd[rating]
[fullText]efg[rating]
抽取[fullText][rating]之间的内容,并将其保存到B文件中
#include <fstream>
using std::ifstream; using std::ofstream;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <iostream>
vector<string> &split( const string &str, const string &delimiters, vector<string> &elems, bool skip_empty = true ) {
string::size_type pos, prev = 0;
while ( ( pos = str.find_first_of(delimiters, prev) ) != string::npos ) {
if ( pos > prev ) {
if ( skip_empty && 1 == pos - prev ) break;
elems.emplace_back( str, prev, pos - prev );
}
prev = pos + 1;
}
if ( prev < str.size() ) elems.emplace_back( str, prev, str.size() - prev );
return elems;
}
bool pickup(const string &source, const string &dest, const string &label_front, const string &label_back) {
ifstream ifs( source );
if ( ifs.fail() ) return false;
ofstream ofs( dest );
if ( ofs.fail() ) return false;
for ( string line; std::getline(ifs, line); ) {
vector<string> content;
if ( 3 == split( line, "[]", content ).size() && content[0] == label_front && content[2] == label_back )
ofs << content[1] << " ";
}
return true;
}
int main()
{
if ( pickup("A.txt", "B.txt", "fullText", "rating") )
std::cout << "pickup success!" << std::endl;
}