BufferedWriter 未将所有内容写入其输出文件

2023-12-09

我有一个 Java 程序,它从文件中逐行读取一些文本,并将新文本写入输出文件。但并不是我写给我的所有文字BufferedWriter程序完成后出现在输出文件中。这是为什么?

详细信息:该程序获取 CSV 文本文档并将其转换为 SQL 命令以将数据插入表中。该文本文件有超过 10000 行,类似于以下内容:

2007,10,9,1,1,1006134,19423882

该程序似乎工作正常,只是它在创建新的 SQL 语句并将其打印到 SQL 文件中时随机停止在文件中。它看起来像:

insert into nyccrash values (2007, 1, 2, 1, 4, 1033092, 259916);
insert into nyccrash values (2007, 1, 1, 1, 1, 1020246, 197687);
insert into nyccrash values (2007, 10, 9, 1

这种情况发生在大约 10000 行之后,但距离文件末尾还有几百行。中断发生的地方是在1 and a ,。然而,角色似乎并不重要,因为如果我改变1 to a 42写入新文件的最后内容是4,即从该整数中减去 2。所以看起来读者或作者在写/读一定数量后一定会死。

我的Java代码如下:

import java.io.*;

public class InsertCrashData
{
    public static void main (String args[])
    {
        try
        {   
            //Open the input file.
            FileReader istream = new FileReader("nyccrash.txt");
            BufferedReader in = new BufferedReader(istream);
            //Open the output file.
            FileWriter ostream = new FileWriter("nyccrash.sql");
            BufferedWriter out = new BufferedWriter(ostream);
            String line, sqlstr;

            sqlstr = "CREATE TABLE nyccrash (crash_year integer, accident_type integer, collision_type integer, weather_condition integer, light_condition integer, x_coordinate integer, y_coordinate integer);\n\n"; 
            out.write(sqlstr);

            while((line = in.readLine())!= null)
            {
                String[] esa = line.split(",");
                sqlstr = "insert into nyccrash values ("+esa[0]+", "+esa[1]+", "+esa[2]+", "+esa[3]+", "+esa[4]+", "+esa[5]+", "+esa[6]+");\n";
                out.write(sqlstr);
            }
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}

你需要关闭你的OutputStream这将刷新您的剩余数据:

out.close();

默认缓冲区大小为BufferedWriter is 8192 个字符,足够大,可以轻松容纳数百行未写入的数据。

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

BufferedWriter 未将所有内容写入其输出文件 的相关文章

  • 我可以在 Java 枚举上使用构建器模式吗

    我正在重写一些代码 并且我已经决定了重新创建类的方法 因为有固定数量的工作表 我将它们创建为枚举 这是基于构建器模式与伸缩构造器的可读性的决定 我的代码获取一些 xls 文件 添加标题 并从其他 xls 文件中读取一些 也许还有一些子表 然
  • 创建通用数组时出错

    public class TwoBridge implements Piece private HashSet
  • 将键与多个值对象关联的有效集合[重复]

    这个问题在这里已经有答案了 有任何有效的集合可以将键与多个值关联起来 例如 new HashMap
  • 从 Eclipse 导出后,WAR 文件中缺少一些必要的库 - 为什么?

    我接手了一个大学的项目 其中包含一些 Web 服务 通过将项目导出为 WAR 文件 一些库包含在文件中 例如 Axis2 而另一些则不包含 hibernate JDBC 驱动程序 另外 添加到类路径中的 jar 尚未导出 所有库都位于硬盘驱
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • 使用起始字符串和结束字符串从长字符串中提取子字符串?

    我有这个长字符串 它是一个长的连续字符串 Home address H NO 12 SECTOR 12 GAUTAM BUDH NAGAR NOIDA 121212 UTTAR PRADESH INDIA 911112121212 Last
  • 使用 POJO 仅更新 JOOQ 记录中已更改的字段

    我想使用 POJO 作为源来更新 JOOQ 记录中已更改的字段 Record from Object http www jooq org javadoc 3 8 x org jooq Record html from java lang O
  • Spark SQL 失败,因为“常量池已超过 JVM 限制 0xFFFF”

    我在 EMR 4 6 0 Spark 1 6 1 上运行此代码 val sqlContext SQLContext getOrCreate sc val inputRDD sqlContext read json input try inp
  • Java 套接字 - 读和写

    问题 客户端没有收到任何消息 这是客户端和服务器的完整代码 CLIENT public class Client extends Socket public Client String hostName int port throws Un
  • 无法删除临时文件夹(有时)

    当我启动应用程序时 我创建一个临时文件夹 public static File createTempDir String name throws IOException File tempDir File createTempFile na
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Tomcat下的Spring CXF Soap Web服务:找不到服务

    我正在尝试使用 CXF 和 Spring 设置一个在 Tomcat 上运行的简单 CXF Web 服务 我有一个 Web 应用程序初始化程序来引导 CXF servlet public class WebAppInitializer ext
  • java charAt() 和startsWith() 哪个更快? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的问题是 如果我想检查特定索引中字符串的一个字符 仅检查一个字符 哪种方法非常有效charAt or startsWith 我的意思是 据我所
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • Java 中的连接路径

    In Python我可以连接两条路径os path join os path join foo bar gt foo bar 我正在尝试在 Java 中实现相同的目标 而不用担心是否OS is Unix Solaris or Windows
  • 使用 Retrofit 获取原始 HTTP 响应

    我想从我的 API REST 获取原始 http 响应 我尝试过这个界面 POST login FormUrlEncoded Call
  • Java 执行器和长寿命线程

    我继承了一些使用 Executors newFixedThreadPool 4 的代码运行 4 个长寿命线程来完成应用程序的所有工作 这是推荐的吗 我读过Java 并发实践 https rads stackoverflow com amzn
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • 如何在 tomcat 上部署 Java Web 应用程序 (.war)?

    我有一个 warJava Web 应用程序的文件 现在我想将它上传到我的 ftp 服务器 以便我可以执行它 我应该执行哪些步骤来运行它 webapp的上下文路径是 mywebapp Edit 实际上 我的 ftp 服务器名称是ftp bil
  • ImageIO.read(...) - 非常慢,有更好的方法吗?

    我正在加载大量将在我的应用程序中使用的图标 我计划在服务器启动时从 jar 中加载所有这些 然而 由于数百张图像加起来刚刚超过 9MB 执行此任务仍然需要 30 秒多的时间 我现在正在一个单独的线程中执行此操作 但这让我想知道我是否在代码中

随机推荐

  • 使用 String hashCode() 方法? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 来自链接 http www tutorialspoint com java java string hashcode htm Java中hashCode和equals方法的关系 良好的
  • Python Pylab,如何更改指定轴大小的标签的大小

    我正在尝试绘制核衰变的微分横截面 因此 y 轴的大小约为10 38 m 2 pylab 默认将轴绘制为0 0 0 2 0 4 等并有一个 1e 38 在 y 轴的顶部 我需要增加一点字体大小 我尝试过调整标签大小 py tick param
  • 从 JFrame 修改独立的 JPanel

    我有一个带有两个独立 JPanel 的 JFrame 其中一个 JPanel 充满了 JButton 而另一个则有几个文本字段 我通过 JFrame 将鼠标侦听器添加到按钮 并且希望当从第一个 JPanel 触发事件时 第二个 JPanel
  • 将 XML Dsig 格式转换为 DER ASN.1 公钥

    我正在开发一个 iPhone 应用程序 它从 ASP NET Web 服务中检索 RSA 公钥 格式如下
  • 谷歌加API:“权限不足”错误

    我正在使用 api 搜索 google plus 这是我的网址 https www googleapis com plus v1 activities query internet 20marketing access token xxxx
  • __name__ 的目的是什么?

    什么是 name 做 我只见过它搭配 main 没有别的 我知道经典if name main 定义作为包运行与独立运行时的行为 但是还有什么其他用途 name name is main 如果您直接执行脚本 如果您要导入模块 name 是模块
  • 如何正确重载 __add__ 方法?

    我需要写一门涉及日期的课程 我应该超载 运算符允许将天数添加到日期中 解释一下它是如何工作的 ADate对象表示为 2016 4 15 格式为 年 月 日 添加整数 10 应该得到 2016 4 25 这Date阶级有价值观self yea
  • .NET 集合类的渐近复杂度

    是否有任何关于 NET 集合类方法的渐近复杂性 big O 和其他 的资源 Dictionary
  • 如何控制 JSF 中的访问和权限?

    我想在用户登录我的系统后控制访问 例如 administrator can add delete and give rights to employee employee fill forms only 因此 在知道用户拥有哪些权限后 检查
  • 如何使用log4j的同一个记录器将不同的信息写入两个不同的文件?

    我想使用我的记录器写入两个不同的文件 其声明如下 public static final Logger logger Logger getLogger Adapt class PropertyConfigurator configure l
  • 在 Ajax 调用中传递包含空格的值

    尝试在 ajax 调用中传递空格 我相信 word 与 word 的传递方式相同 另一方面 两个单词需要通过呼叫完全发送 第二个词 但不一样 第二个字 我应该在调用之前修剪还是在服务器端脚本上执行此操作 我怎样才能发送空格 我知道这是一个老
  • urllib2/requests 和 HTTP 相对路径

    如何强制 urllib2 requests 模块使用相对路径而不是完整 绝对 URL 当我使用 urllib2 requests 发送请求时 我在代理中看到它将其解析为 GET https xxxx path to something HT
  • 为什么我的应用程序没有输入 if 语句

    我正在尝试用 Java 编写一个控制台客户端 服务器应用程序 使用套接字 我目前有一个简单的登录系统和一个简单的命令系统 登录系统似乎可以正常工作 尽管它会向客户端打印 无效的用户名和密码 行 无论用户是否输入正确的凭据 连接肯定有效 然而
  • GAE 部署 Java8/Java7 错误

    我正在尝试通过 Intellij IDEA 将一个基本上空的项目部署到 GAE 我创建了一个新项目 在 appengine web xml 中设置我的项目 ID 并保留其他所有内容 我收到以下错误 并带有完整日志here java lang
  • 在满足条件后使用 mufa 停止 React 组件之间的通信

    我正在使用 sub pub 模式mufa在 React 组件之间而不是 props 之间进行通信 然后 我们将减轻父组件中的逻辑 正如您将在下面的代码片段中注意到的那样 const on fire mufa class Input exte
  • 使用 codeigniter 电子邮件库时,当主题 > 75 个字符时,电子邮件主题标头格式错误

    当主题超过 75 个字符时 我的 MIME 标头中出现一些乱码 当换行符编码在标头中时 会有一个无效的额外换行符 某些电子邮件网关会使用以下内容退回电子邮件 MIME 字段格式错误 utf 8 Q SUBJECT error 有人有过使用
  • Gradle - 没有主要清单属性

    我正在使用 Gradle 构建 JAR 文件 当我尝试运行它时 出现以下错误 RxJavaDemo jar 中没有主要清单属性 我尝试操纵manifest属性 但我想我忘记添加依赖项或其他内容 我究竟做错了什么 apply plugin j
  • 如果失败X次,nodejs重试功能

    我希望我的函数执行 X 3 次直到成功 在我的情况下我正在跑步kinesis putRecord 来自 AWS API 如果失败 我想再次运行它 直到成功 但尝试次数不超过 3 次 我是 NodeJS 新手 我写的代码很难闻 const p
  • 从复合组件执行 JavaScript

    美好的一天 我有一个问题困扰了我几个小时 这非常简单 我尝试在呈现复合组件时调用 执行 JavaScript 就像您可以使用 html 标签 body 和 onload 执行的操作一样 如何引用要执行的内联 JavaScript
  • BufferedWriter 未将所有内容写入其输出文件

    我有一个 Java 程序 它从文件中逐行读取一些文本 并将新文本写入输出文件 但并不是我写给我的所有文字BufferedWriter程序完成后出现在输出文件中 这是为什么 详细信息 该程序获取 CSV 文本文档并将其转换为 SQL 命令以将