我有一个名为“add”的方法,它将字符串作为参数,并使用bufferedwriter将其写入文件。完成此操作后,bufferedwriter将被刷新。
在另一个方法“read”中,我遍历文件中的行,但这些行是空的(因此我不能打印它们)。
public String add(String data) throws IOException{
this.bufferedWriter.write(data);
this.bufferedWriter.flush();
//this.read(data);
logger.info("written " +data);
return data;
}
public String read(String key) throws IOException{
logger.info("start reading ...: ");
String line = this.bufferedReader.readLine();
while (line!= null) {
logger.info("loop start reading ...: "+line);
if(line.split(" ").equals(key)) {
logger.info("reading line: "+line);
return line;
}
line = this.bufferedReader.readLine();
}
return "F"; // indicates the key is not in the storage
}
public class FileManager {
Path dataDir;
File f;
FileReader fileReader;
BufferedReader bufferedReader;
FileWriter fileWriter;
BufferedWriter bufferedWriter;
public static Logger logger = Logger.getLogger(FileManager.class.getName());
public FileManager(Path dataDir) throws IOException {
logger.info("in file manager: ");
this.dataDir = dataDir;
String dirName = dataDir.toString();
String fileName = "fifo2.txt";
File dir = new File (dirName);
dir.mkdirs();
f = new File (dir, fileName);
logger.info("file established at "+f.getAbsolutePath());
if(!f.exists()){
logger.info("file not there so create new one ");
f.createNewFile();
logger.info("file created!!! ");
}else{
logger.info("file already exists");
System.out.println("File already exists");
}
logger.info("file stage complete");
this.fileReader = new FileReader(f);
this.bufferedReader = new BufferedReader(fileReader);
this.fileWriter = new FileWriter(f, true);
this.bufferedWriter = new BufferedWriter(fileWriter);
}
public String add(String data) throws IOException{
this.bufferedWriter.write(data);
this.bufferedWriter.flush();
//this.read(data);
logger.info("written " +data);
return data;
}
public String read(String key) throws IOException{
logger.info("start reading ...: ");
String line = this.bufferedReader.readLine();
while (line!= null) {
logger.info("loop start reading ...: "+line);
if(line.split(" ").equals(key)) {
logger.info("reading line: "+line);
return line;
}
line = this.bufferedReader.readLine();
}
return "F"; // indicates the key is not in the storage
}
public String delete(String key) throws IOException{
logger.info("Entering deletion in file storage");
String line;
while ((line = this.bufferedReader.readLine()) != null) {
if(line.split(" ").equals(key)) {
line = "DELETED";
logger.info("del_reading line: "+line);
bufferedWriter.write(line);
}
line = this.bufferedReader.readLine();
}
return "F"; // indicates the key to be deleted is not in the storage
}
您应该尝试在每次对文件执行读/写操作时创建bufferedreader/writer
的新实例。确保每次使用后冲洗并关闭。
我正在youtube上观看关于BufferedReader的教程 https://www.youtube.com/watch?v=yofFVbARIRU 我写的代码和他写的一模一样,但我无法让它工作。我无法使BufferedReader代码正常工作,即使我使用 我用这个代码解决了它: 这也同样有效: 谁能给我解释一下第一个代码出了什么问题?因为这对指导他的人很管用
我在我的windows机器上设置了Elk堆栈,其中包含以下内容: Elasticserach Logstash Kibana 我的logstash.conf 我的日志文件。日志(Apache日志) 当我运行logstash时。conf它在elasticsearch中创建以下索引: 上面的索引为空,无法从我的日志文件中获取任何数据。请帮忙?我对麋鹿很陌生。 当我使用以下方法查询索引logstash-
我试着用上传的文件创建ReadSteam并将管道连接到WriteStream: 但出现了这个错误:
我正在尝试创建一个应用程序,该应用程序使用spring-batch-excel扩展名来读取用户通过web界面上传的Excel文件,以便解析Excel文件中的地址。 当代码运行时,没有错误,但我得到的只是我日志中的以下内容。即使我的处理器和Writer中都有log/syso(它们从未被调用过,我所能想象的是它没有正确读取文件,也没有返回要处理/写入的数据)。是的,这个文件有数据,实际上有几千条记录。
我是Jmeter的新手,正在尝试在HTTP GET请求的路径中使用CSV文件中的变量。 我已经翻阅了这个问题的各种教程和答案,但我还是弄不清我做错了什么。文件只有一个头(ID)。如果我在路径中输入ID,它可以工作,但当我尝试从CSV文件中读取它时,它就失败了:
当我运行以下命令时: 这些列打印为“_col0”、“_col1”、“_col2”等。而不是它们的真实名称,如“empno”、“name”、“Deptno”。 当我在Hive中“description mytable”时,它会正确打印列名,但当我运行“orcfiledump”时,它也会显示\u col0、\u col1、\u col2。我必须指定“schema on read”或其他什么吗?如果是,