Java 替换文本文件中的行

2023-11-27

我从另一个问题中找到了这段代码

private void updateLine(String toUpdate, String updated) throws IOException {
    BufferedReader file = new BufferedReader(new FileReader(data));
    String line;
    String input = "";

    while ((line = file.readLine()) != null)
        input += line + "\n";

    input = input.replace(toUpdate, updated);

    FileOutputStream os = new FileOutputStream(data);
    os.write(input.getBytes());

    file.close();
    os.close();
}

这是我替换某些行之前的文件

example1
example2
example3

但是当我替换一行时,文件现在看起来像这样

example1example2example3

当文件中有很多行时,这使得无法读取文件。

我将如何编辑上面的代码以使我的文件看起来像开始时的样子?


Use System.lineSeparator()代替\n.

while ((line = file.readLine()) != null)
    input += line + System.lineSeparator();

问题是在 Unix 系统上,行分隔符是\n而在 Windows 系统上,它是\r\n.

在 Java 7 之前的 Java 版本中,您必须使用System.getProperty("line.separator")反而。

正如评论中指出的,如果您担心内存使用情况,明智的做法是不要将整个输出存储在变量中,而是在用于处理输入的循环中逐行写出它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 替换文本文件中的行 的相关文章

  • Java - 将无符号十六进制字符串解析为有符号长整型

    我有一堆十六进制字符串 其中之一是 d1bc4f7154ac9edb 这是 3333702275990511909 的十六进制值 如果执行 Long toHexString d1bc4f7154ac9edb 这与您得到的十六进制相同 现在
  • 来自行号的方法名称

    给定特定类源代码 Java C 的行号 是否有一种简单的方法来获取它所属的方法的名称 如果它落入其中 大概使用抽象语法树 这对于将 checkstyle 的输出限制为仅触及的方法很有用 我假设您必须使用抽象语法树来执行 Line gt Me
  • 使用 Spring MVC 在 jar 文件中显示 jsp 页面

    我正在使用 Spring MVC 3 2 2 在 java 中开发一个 Web 应用程序 我在从 jar 文件中加载 jsp 页面时遇到问题 Spring MVC Web应用程序具有以下结构 META INF WEB INF spring
  • Google 表格使用 API 密钥而不是 client_secret.json

    In the QuickStart java示例Java 快速入门 https developers google com sheets api quickstart java他们使用OAuth client ID识别该应用程序 这会弹出一
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • 在 Eclipse 中删除空块之前的新行

    我更喜欢奥尔曼式 http en wikipedia org wiki Brace style Allman style大括号 例如 if foo magical prancing unicorn stuff 而不是 if foo unma
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • JFrame 在连续运行代码时冻结

    我在使用时遇到问题JFrame 它会冻结 连续运行代码 下面是我的代码 点击时btnRun 我调用了该函数MainLoop ActionListener btnRun Click new ActionListener Override pu
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • 如何获取 JDBC 中 UPDATE 查询影响的所有行?

    我有一项任务需要使用更新记录PreparedStatement 一旦记录被更新 我们知道更新查询返回计数 即受影响的行数 但是 我想要的不是计数 而是受更新查询影响的行作为响应 或者至少是受影响的行的 id 值列表 这是我的更新查询 UPD
  • 如何在 JmsMessagingTemplate.sendAndReceive 上设置等待超时

    我在 MVC 控制器中使用 JmsMessagingTemplate 的 sendAndReceive 但如果没有发送回复消息 它似乎会永远等待回复 该文档指出 返回 回复 如果无法接收消息 例如由于超时 则可能为 null 然而 我只是不
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • Hybris:如何在impex中导入zip文件中的媒体?

    我知道我们可以导入未像这样压缩的图像 siteResource jar com project initialdata constants ProjectInitialDataConstants projectinitialdata imp
  • 向Java类库添加函数

    我使用的 Java 类库在很多方面都不完整 有很多类我认为应该内置其他成员函数 但是 我不确定添加这些成员函数的最佳实践 让我们调用不足的基类A class A public A long arbitrary arguments publi
  • log4j.properties 在 Wildfly 上无法正常工作

    我的类路径中有一个 log4j properties 文件 它位于 APP XX jar log4j properties 位置 我注意到在ear文件中我还可以在lib文件夹中找到log4j 1 2 17 jar 但无论我在 log4j p
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 如何更改 JAX-WS Web 服务的地址位置

    我们目前已经公开了具有以下 URL 的 JAX RPC Web 服务 http xx xx xx xx myservice MYGatewaySoapHttpPort wsdl http xx xx xx xx myservice MYGa
  • FragmentMap + ActionBar 选项卡

    我一直在尝试插入一个MapView进入一个ActionBar Tab 但我什至无法解决问题 即使谷歌搜索 这是主要活动 Override public void onCreate Bundle savedInstanceState supe

随机推荐

  • iOS 6 shouldAutorotate:没有被调用

    我一直在互联网上寻找解决方案 但一无所获 我正在尝试使我的 iOS 5 应用程序兼容 iOS 6 我无法让方向的东西正常工作 我无法检测到轮换何时即将发生 这是我正在尝试的代码 BOOL shouldAutorotate return NO
  • 按其他数据帧列中不存在的值过滤数据帧[重复]

    这个问题在这里已经有答案了 用这个稍微敲一下我的头 我怀疑答案很简单 给定两个数据帧 我想过滤第一个数据帧 其中一列中的值不存在于另一个数据帧的列中 我想在不求助于成熟的 Spark SQL 的情况下执行此操作 因此只需使用 DataFra
  • 在将预测四舍五入到类别后,如何在 keras 中计算回归模型的准确性?

    如何在 keras 中创建和显示回归问题的准确度指标 例如在将预测四舍五入到最接近的整数类之后 虽然对于回归问题 准确度本身并没有按照惯例有效定义 但要确定ordinal数据的类 标签 适合将问题视为回归 但是 计算准确度指标也会很方便 无
  • GIT:推送到远程服务器时“git-upload-pack:找不到命令”

    所以我正在使用 GIT 尝试将代码推送到我的远程服务器 在共享的 UNIX 主机上 我不允许拥有自己的环境变量 SSH 帐户被阻止 并且没有 sudo 访问权限 成功在我的 home 中安装 git 尝试将代码推送到服务器返回 bash g
  • ncurses 到外壳并返回弄乱密钥

    我有这个 ncurses 应用程序正在执行标准配方 暂时退出 ncurses 运行外部 编辑器 shell 无论什么 然后在完成后返回 ncurses 这几乎可以工作 除了 ncurses 的前几个按键 之后得到的显然是假的 ncurses
  • Ruby 中的有限矩阵

    怎么来的Matrix类没有方法来编辑其向量和组件吗 似乎矩阵内的所有内容都可以读取但不能写入 我错了吗 有没有第三方优雅的Matrix 类似的类允许我删除行并有意编辑它们 如果没有这样的课程 请通知我 我将停止搜索 班级设计师Matrix一
  • 在将用户输入的 PHP 代码传递给 eval() 之前验证它

    在将字符串传递给 eval 之前 我想确保语法正确并允许 两个函数 a 和 b 四个运算符 括号 数字 1 2 1 1 我该如何做到这一点 也许它与 PHP Tokenizer 有关 我实际上正在尝试制作一个简单的公式解释器 因此 a 和
  • 瓦提尔。滚动到页面的某一点

    我正在尝试在网站上自动进行在线调查 但每次都会收到此错误 Selenium WebDriver Error UnknownError unknown error Element is not clickable at point 561 8
  • 如何使用maven部署带有依赖jar的Applet并对其进行签名?

    有人可以告诉我 pom 文件应该是什么样子来创建一个带有小程序的 jar 文件 该文件依赖于其他一些 jar 是否可以将一个 jar 作为小程序 以及如何对其进行签名 如果你想要你的课程and出现在的依赖项一个 jar 文件 你应该使用组装
  • Chrome 开发工具设置中没有“覆盖”页面

    如何在我的设置中启用覆盖面板 我打开 Chrome 浏览器 它就消失了 我浪费了大部分时间试图让它工作 但谷歌上有 0 个答案 谢谢 Chrome 让我的设置消失 酷 仿真 面板是新的 覆盖 面板
  • Gmail 上下文小工具

    我想问题一是 现在是否真的可以为 gmail 创建一个上下文小工具 在过去的两天里 我仔细阅读了 非常过时的 文档 以及我能找到的关于该主题的每个论坛帖子 我已经尝试了所有方法 但什么也没看到 甚至没有任何可能为我指明正确方向的错误消息提示
  • 绑定变量和替换变量(我使用 && 输入)之间有什么区别?

    这两个变量声明有什么区别 1 num number num 2 variable num1 number 因为在这两种情况下我都可以参考num通过使用 num or num在其他文件中也 对于绑定变量 num1 此外 我还有一个困惑 以下任
  • C# 数组从一行中拆分获取最后一项

    我知道这可以获取数组的第一项 string aString hello all this is a test string firstItemOfSplit aString Split new char 0 firstItemOfSplit
  • 如何使用 JPA 设置 Eclipselink?

    The Eclipselink 文档说我需要在 pom xml 中包含以下条目才能使用 Maven 获取它
  • 将带有多个分隔符的文本导入 pandas

    我有一些数据看起来像这样 c stuff c more header c begin data 1 1 5 1 2 6 5 1 3 5 3 我想将其导入到 3 列数据框中 其中列例如 a b c 1 1 0 5 etc 我一直在尝试将数据读
  • 私有函数 didFinishLaunchingWithOptions 没有被调用? (斯威夫特 3)

    Isn t didFinishLaunchingWithOptions应该在应用程序第一次开始运行时调用 我在此方法中设置了一个断点 当我在模拟器中运行应用程序时 断点不会被命中 这意味着该方法不会被调用 每当应用程序启动时 我都会尝试从
  • 在 MongoDB 中缓存重复查询结果

    我将构建一个旨在被大量 查看 的页面 但很少有用户会 写入 数据库 例如 只有百分之一的用户可能会在我的网站上发布他的新闻 其余的只会阅读新闻 在上面的例子中 当他们访问我的主页时会执行100个SAME QUERIES 而实际的数据库变化很
  • 有什么方法可以区分主线程和它生成的任何线程吗?

    我知道getName 主线程上的函数将返回字符串main 但这可以改变setName 有没有办法始终确定应用程序的主线程 一种可能性是致电Thread currentThread 开始时main 并保留参考
  • 为什么需要将项目合规性更改为 1.5?

    我在eclipse上用maven2创建了一个项目 添加 hibernate annotations 依赖项后 我尝试使用 hibernate 注释 Entity Table 创建一个类 但它给了我这个错误 将项目合规性和 JRE 更改为 1
  • Java 替换文本文件中的行

    我从另一个问题中找到了这段代码 private void updateLine String toUpdate String updated throws IOException BufferedReader file new Buffer