XxxXxxXxx233
2019-05-13 12:13
采纳率: 88.9%
浏览 1.0k
已采纳

如何在文件开头加上一行数据?(输入输出的文件名要相同)

请问如何读入一个文件,然后在这个文件的开头加上一行数据,再输出同一个名字的文件?

谢谢各位大神了。

example.txt
假设文件内容:
abc
def
ghi

更改后还是example.txt
内容:
123
abc
def
ghi

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 毕小宝 2019-05-14 09:32
    已采纳

    先读取文件,然后再写入文件,就是最基本的文件操作。

    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();
            }
        }
    }
    
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题