gpt4 book ai didi

java BufferedReader 和 Writer 无法按预期工作

转载 作者:行者123 更新时间:2023-12-01 19:46:51 25 4
gpt4 key购买 nike

我想做的是读取 mnist 训练文件,并用十一位数字表示它的第一个数字,并保持其他相同。

所以 3,1,4,6 ... 到 ,0,0,0,1,0,0,0,0,0,0,1,4,6... (首先是“”数字,总共 11 位)

我以为这是一项容易的工作,但事实并非如此。

import java.io.*;
public class T {
public static void main(String[] args){
File file = new File("./src/dataset/mnist_train.csv");
File wfile = new File("./src/dataset/conv_mnist_train2.txt");

try{
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(wfile));
String line;
String[] numbers;
int g = 0, cnt = 0, cnt2 = 0;

while ((line = bufferedReader.readLine()) != null) {
cnt2++;
numbers = line.split(",");
for(String i : numbers){
if(g == 0){
for(int j=0; j<10; ++j) {
if(j == Integer.parseInt(i)) fileWriter.write("," + 1);
else{ fileWriter.write("," + 0); cnt++;}
}
g++;
}
else {fileWriter.write("," +i); cnt++;}
}
fileWriter.newLine();

System.out.println(numbers.length + " " + cnt + " " + cnt2);
g = 0; cnt = 0;
}
}catch(Exception e){
e.printStackTrace();
}
}
}

g、cnt、cnt2是我用于调试的数字,但我在这里没有发现任何问题;它自然地将每行 785 个字母转换为新的 795 个字母行。

import java.io.*;

public class Tes {
public static void main(String[] args){
File file = new File("./src/dataset/conv_mnist_train2.txt");

try{
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line;
int g = 0;

while ((line = bufferedReader.readLine()) != null) {
g++;
String[] N = line.split(",");
if(N.length != 795){
System.out.println(N.length + " " + g);
for(String i : N) System.out.print(i + " ");
System.out.println();
}
}
}catch(Exception e){
e.printStackTrace();
}

}
}

但是发生的事情是,当我运行第二个代码时,它不应该打印任何内容,打印结果并说我的第 59994 行数据仅由 311 个字母组成。但从我的第一个代码中,我确认我的第 59994 行有 795 个字母。我不知道这是怎么回事。

我还尝试使用 FileWriter 和 FileReader 而不是 BufferedWriter & Reader,但它没有解决问题。有人可以告诉我发生了什么事以及如何解决这个问题吗?

最佳答案

问题是我没有关闭读取器/写入器。不知道这最终会导致严重错误。

关于java BufferedReader 和 Writer 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59117213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com