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

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

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

谢谢各位大神了。

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条)

报告相同问题?

悬赏问题

  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python