jjzjj

BufferedWriter

全部标签

java - 如果文本文件不存在则创建一个文本文件,如果存在则使用 Java BufferedWriter 附加到它

这对于Java程序员来说可能简单得可笑,但事实上我(一个Java的新手)找不到一个简单、直接的例子来说明如何做这意味着我将使用self-answer选项希望能防止其他人经历类似的挫败感。我需要将错误信息输出到一个简单的文本文件中。这些操作很少见且很小(有时根本不需要),因此没有必要为文件保持打开的流;文件在一次操作中打开、写入和关闭。与我遇到的其他“追加”问题不同,这个问题要求在Java应用程序的运行中第一次调用方法时创建文件。在此之前该文件将不存在。原代码为:PathpathOfLog=Paths.get(gsOutputPathUsed+gsOutputFileName);Char

java - 使用 FileOutputStream 时访问被拒绝

我在让它工作时遇到了问题。它接受一个字符串,该字符串由几条信息放在一起组成。但是,当我尝试将字符串写入文件以跟踪程序随时间的变化时,我收到访问被拒绝错误:voidwriteToFile(Stringinput)throwsException{Filefile=newFile("C:\\WeatherExports\\export.txt");if(!file.exists()){file.createNewFile();}BufferedWriterinFile=newBufferedWriter(newFileWriter(file,true));try{inFile.append(

java - 在 Java 中,使用 BufferedWriter 追加到文件有什么好处?

我正在查看以下example其中使用了以下代码try{BufferedWriterout=newBufferedWriter(newFileWriter("outfilename"));out.write("aString");out.close();}catch(IOExceptione){}比做有什么优势FileWriterfw=newFileWriter("outfilename");我都试过了,当涉及到一次一行地附加到文件的任务时,它们的速度似乎相当 最佳答案 Javadoc提供了关于这个主题的合理讨论:Ingeneral,

java - 在 Java 中使用 Buffered writer 编写一个 csv 文件

我正在使用java中的缓冲写入器编写一个csv文件。我的数据写入正确,但我希望数据位于不同的列下,目前它正在将日期的每个实例写入一行但不按列分隔。代码是DateFormatdf=newSimpleDateFormat("yyyy-MM-dd_HH.mm.ss");Filefile=newFile(dirName+"\\"+df.format(newDate())+"_Statistics.csv");if(!file.exists())file.createNewFile();FileWriterfw=newFileWriter(file);writer=newBufferedWrit

Java 控制台无法正确读取中文字符

我正在努力让Eclipse正确读取中文字符,但我不确定我可能哪里出错了。具体来说,在从控制台读取一串中文(简体或繁体)和输出之间的某个地方,它会出现乱码。即使在输出一大串混合文本(英文/中文字符)时,它似乎也只是改变了中文字符的外观。我已将其缩减为以下测试示例,并用我认为在每个阶段发生的事情对其进行了明确注释-请注意,我是一名学生,非常想确认我的理解(或其他):)publicstaticvoidmain(String[]args){try{booleanisRunning=true;//RawflowofinputdatafromtheconsoleInputStreaminputSt

java - 用于创建大型 CSV 文件的 Java IO 最佳实践

您好,我需要创建几个大型CSV文件,整个文件的数量可能是200万。所以我想知道如何有效地做到这一点..因此我想到了几个问题1。当我们通过BufferedWriter写入文件时,我们应该多久刷新一次?但是我认为bufferedWriter维护自己的缓冲区,一旦缓冲区已满,它就会自动刷新它,如果是这种情况,那么为什么还有flush方法呢??因为我要创建的文件会很大。所以当我开始写文件时,文件会自动提交到磁盘吗??(在调用writer.close()之前)或整个文件保留在主内存中直到我关闭writer?。通过提交我的意思是已经写入的部分没有任何部分在主内存中,即它已准备好进行GC

Java BufferedWriter 创建空字符

我一直在使用Java的BufferedWriter写入文件以解析一些输入。但是,当我之后打开文件时,似乎添加了空字符。我尝试将编码指定为“US-ASCII”和“UTF8”,但我得到了相同的结果。这是我的代码片段:ScannerfileScanner=newScanner(original);BufferedWriterout=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(file),"US-ASCII"));while(fileScanner.hasNextLine()){Stringnext=fileScann

Java BufferedWriter,OutputStreamWriter 能够写入关闭的 FileOutputStream

当我将数据写入Stream时,我期望以下代码会抛出异常:Filefile=newFile("test.txt");FileOutputStreamfs=newFileOutputStream(file);OutputStreamWriterow=newOutputStreamWriter(fs);BufferedWriterwriter=newBufferedWriter(ow);fs.close();try{ow.write(65);writer.write("test");}catch(Exceptione){e.printStackTrace();}我意识到我应该关闭Buffer

Java - 不要用缓冲写入器覆盖

我有一个程序可以将人员添加到数组列表中。我想做的是将这些人也添加到一个文本文件中,但程序会覆盖第一行,因此这些人会被删除。我如何告诉编译器在下一个空闲行写入?importjava.io.*;importjava.util.*;importjavax.swing.JTextArea;publicclassLogic{Filefile;FileWriterfw;FileReaderfr;BufferedWriterbw;ArrayListperson;publicLogic(){try{file=newFile("register.txt");if(!file.exists()){file

java - java.net.Socket 线程安全的方式是什么?

我有一个Socket,我正在通过BufferedReaders和BufferedWriters读取和写入。我不确定可以从单独的线程执行哪些操作。我猜想同时从两个不同的线程写入套接字是个坏主意。与同时从两个不同线程读取套接字相同。在一个线程上阅读而在另一个线程上写入怎么样?我问是因为我想让一个线程在等待更多数据时长时间阻塞读取,但在等待期间我也偶尔有数据要在套接字上发送。我不清楚这是否是线程安全的,或者我是否应该在写入之前取消读取(这会很烦人)。 最佳答案 套接字在流级别是线程不安全的。您必须提供同步。唯一的保证是无论并发性如何,您都