Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取.dat文件并写入文本文件?_Java_File_Readfile - Fatal编程技术网

Java 如何读取.dat文件并写入文本文件?

Java 如何读取.dat文件并写入文本文件?,java,file,readfile,Java,File,Readfile,如何在Java中读取.dat文件并将该数据写入文本文件。 这是我的代码,我已经尝试过,但我得到的错误。请有人帮帮我 字符串inputFile=“file.dat” 错误-- 线程“main”java.io.UTFDataFormatException中出现异常:输入格式错误 大约字节3 at java.io.DataInputStream.readUTF(Unknown Source) at java.io.DataInputStream.readUTF(Unknown Source) at

如何在Java中读取.dat文件并将该数据写入文本文件。 这是我的代码,我已经尝试过,但我得到的错误。请有人帮帮我

字符串inputFile=“file.dat”


错误-- 线程“main”java.io.UTFDataFormatException中出现异常:输入格式错误 大约字节3

at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at datReader.main(datReader.java:16)
看看这个例子:

public static void main(String[] args) throws IOException {
    byte[] data = Files.readAllBytes(Paths.get("mydatfile.dat"));
    /* set correct required charset */
    String content = new String(data, StandardCharsets.UTF_8);
    // convert/transform here string if required
    Files.write(Paths.get("file.txt"), content.getBytes(StandardCharsets.UTF_8));
}

此代码假定您使用Java8。很可能您必须处理从dat文件读取的字节数组,以将其转换为字符串数据。

您的
.dat
文件的源是什么?可能.dat文件不包含您期望的内容(不是UTF-8)。是的:文件的内容不是用writeUTFWhat“可读格式”写入的?这是一个六边形垃圾场吗?如果您知道文件的格式,是否希望使用该信息来解析文件。你需要明确你想要的输出是什么,才能得到一个可读的输出,你必须知道输入是什么,否则这只是一个垃圾输入垃圾输出的例子。因此,您首先要告诉我们的是输入文件的格式。和
.dat
不是一种文件格式,而是一种可由各种二进制文件格式使用的扩展名。感谢您的回复。但得到的输出和输入文件中的输出相同。请注意我的评论。我不知道您应该如何处理dat文件数据,这就是为什么我提到您必须转换它
public static void main(String[] args) throws IOException {
    byte[] data = Files.readAllBytes(Paths.get("mydatfile.dat"));
    /* set correct required charset */
    String content = new String(data, StandardCharsets.UTF_8);
    // convert/transform here string if required
    Files.write(Paths.get("file.txt"), content.getBytes(StandardCharsets.UTF_8));
}