请问如何读入一个文件,然后在这个文件的开头加上一行数据,再输出同一个名字的文件?
谢谢各位大神了。
example.txt
假设文件内容:
abc
def
ghi
更改后还是example.txt
内容:
123
abc
def
ghi
请问如何读入一个文件,然后在这个文件的开头加上一行数据,再输出同一个名字的文件?
谢谢各位大神了。
example.txt
假设文件内容:
abc
def
ghi
更改后还是example.txt
内容:
123
abc
def
ghi
先读取文件,然后再写入文件,就是最基本的文件操作。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Visitor {
/**
* 逐行读取文件,并得到一个列表
* @param fileName
* @return
* @throws IOException
*/
public static List<String> readFile(String fileName) throws IOException{
List<String> result = new ArrayList<String>();
FileInputStream is = new FileInputStream(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String content = null;
while ((content = reader.readLine()) != null) {
result.add(content);
}
reader.close();
return result;
}
/**
* 逐行写入文件内容,第一行是指定的
* @param fileName
* @param contents
* @param firstLine
* @throws IOException
*/
public static void writeToFile(String fileName,List<String> contents,String firstLine) throws IOException {
File file = new File(fileName);
BufferedWriter writer = new BufferedWriter( new FileWriter(file));
//写入第一行
writer.write(firstLine+"\r\n");
//写入列表,列表是原来读入的文件
for(String content:contents) {
writer.write(content);
writer.write("\r\n");//写入换行符
}
writer.close();
}
public static void main(String[] args) {
String fileName = "xxx";
List<String> contents;
try {
contents = readFile(fileName);
writeToFile(fileName,contents,"12112");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}