gpt4 book ai didi

java - 从二进制文件(Java)读取数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:46 26 4
gpt4 key购买 nike

对于我正在学习的类(class),我必须创建一个程序,将二进制数据写入文件(基于用户输入),然后将其读取到控制台。这是通过两个独立的程序完成的,一个处理数据,一个获取用户输入。每当我尝试列出文件的内容时,它都会一遍又一遍地打印最后一项。我的代码有什么问题?

这是处理用户输入并打印到控制台的程序的相关部分:

String song = null;

try
{
DataInputStream read = new DataInputStream(
new FileInputStream( fileName ));

while( read.available() > 0 )
{
song = process.readSong( fileName );
System.out.println( song );
}
}

catch( Exception e )
{
System.out.println( "Error" );
}

这是处理数据并从二进制文件中读取数据的程序的相关部分:

public String readSong( String fileName )
{
DataInputStream in = null;

String sTitle;
String sArtist;
String sGenre;

String song = null;

try
{
in = new DataInputStream(
new BufferedInputStream(
new FileInputStream( fileName )));

sTitle = in.readUTF();
sArtist = in.readUTF();
sGenre = in.readUTF();

song = sTitle + "\t" + sArtist + "\t" + sGenre;

in.close();
}

catch( Exception ex )
{
System.out.println( "Error" );
}

return song;
}

最佳答案

你的 DataInputStream对象永远不会被修改,因为 DataInputStream in是函数的局部 readSong() .

您需要传递您的 DataInputStream 的引用函数中的对象读取 readSong() .

所以调用应该是song = process.readSong( fileName , read );并删除本地 DataInputStream in从你的功能 readSong()

关于java - 从二进制文件(Java)读取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573740/

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