gpt4 book ai didi

java - 写入和读取文件 - Java - 不读取我写入文件的内容

转载 作者:行者123 更新时间:2023-12-01 14:46:54 24 4
gpt4 key购买 nike

我正在执行加密算法,并且需要您帮助我在 Java 中写入和读取 .xtt 文件。作为加密的一部分,我基本上需要将 Base64 编码的字节写入 .txt 文件并读取这些确切的字节,对其进行解码并使用它们来执行解密过程。

与我写入 .txt 文件的内容相比,我似乎正在读取不同的内容。基本上,当我检查要写入文件的字节数组时,它被读取为 [B@56e5b723 ,但是当我从文件中读取它时,它会生成 [B@35a8767

这是我的 Java 控制台中打印的结果:

***Numbs converted to ByteArray is as follows: [B@56e5b723
Size of NumbsByteArray is: 10

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-x-x-x-x-x WriteByteArrayToFile(byte[] encoded) HAS STARTED -x-x-x-x-x

6,7,8,9,10 has been received as a byte array in WriteByteArrayToFile(byte[] encoded): [B@56e5b723

6,7,8,9,10 IS TO BE WRITTEN TO THE FILE: /Users/anmonari/Desktop/textfiletwo.txt

bs.write(encoded); HAS BEEN CALLED

-x-x-x-x-x WriteByteArrayToFile(byte[] encoded) HAS ENDED -x-x-x-x-x

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-x-x-x-x-x ReadByteArray() HAS STARTED -x-x-x-x-x

fileData read as bytes is: [B@35a8767

Size of fileData is: 10

fileDataString when converted to a string using String object is����������

fileDataString when converted to a string using fileDataStringTwo.toString()[B@35a8767

fileDataString.getBytes(); is: [B@2c6f7ce9

-x-x-x-x-x ReadByteArray() HAS ENDED -x-x-x-x-x***

下面是我的代码:

package com.writeandreadfromfile;

import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteAndRead {

public static void main(String j[]) {

String Numbs = "6,7,8,9,10";

byte[] NumbsByteArray = Numbs.getBytes();

System.out.println("Numbs converted to ByteArray is as follows: " + NumbsByteArray);
System.out.println("Size of NumbsByteArray is: " + NumbsByteArray.length);

System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

WriteByteArrayToFile(NumbsByteArray);

System.out.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

try {
ReadByteArrayFromFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

// Write ByteArray To File
public static void WriteByteArrayToFile(byte[] NumbsByteArray) {
System.out.println("\n-x-x-x-x-x WriteByteArrayToFile(byte[] encoded) HAS STARTED -x-x-x-x-x");

System.out.println("6,7,8,9,10 has been received as a byte array in WriteByteArrayToFile(byte[] encoded): " + NumbsByteArray);

String fileName = "/Users/anmonari/Desktop/textfiletwo.txt";

System.out.println("6,7,8,9,10 IS TO BE WRITTEN TO THE FILE: " + fileName);

BufferedOutputStream bs = null;

try {

FileOutputStream fs = new FileOutputStream(new File(fileName));
bs = new BufferedOutputStream(fs);
bs.write(NumbsByteArray);
System.out.println("bs.write(encoded); HAS BEEN CALLED");
bs.close();
bs = null;

} catch (Exception e) {
e.printStackTrace();
}

if (bs != null) try { bs.close(); } catch (Exception e) {}

System.out.println("-x-x-x-x-x WriteByteArrayToFile(byte[] encoded) HAS ENDED -x-x-x-x-x");
}

// Read ByteArray To File
public static void ReadByteArrayFromFile() throws IOException {
// Create FileInputStream and feed it the file name
System.out.println("-x-x-x-x-x ReadByteArray() HAS STARTED -x-x-x-x-x");

File file;

try {
file = new File("/Users/anmonari/Desktop/textfiletwo.txt");

// Create the object of DataInputStream
DataInputStream in = new DataInputStream((new FileInputStream(file)));

byte[] fileData = new byte[(int)file.length()];

System.out.println("fileData read as bytes is from file: " + fileData);

System.out.println("Size of fileData is: " + fileData.length);

//String fileDataString = in.readLine();

String fileDataString = new String(fileData);
System.out.println("fileDataString when converted to a string using String object is" + fileDataString);

String fileDataStringTwo = fileData.toString();
System.out.println("fileDataString when converted to a string using fileDataStringTwo.toString()" + fileDataStringTwo);

fileDataString.getBytes();
System.out.println("fileDataString.getBytes(); is: " + fileDataString.getBytes());

//Close the input stream
in.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("-x-x-x-x-x ReadByteArray() HAS ENDED -x-x-x-x-x");

}
}

任何有关如何从文件中读取您写入文件的确切字节数组的帮助,我们将不胜感激!

最佳答案

您没有打印字节数组的内容。您将输出它们的类型和 hashCode(数组上的 toString() 方法的结果)。

要输出字节数组的内容,请使用

System.out.println(java.util.Arrays.toString(array));

关于java - 写入和读取文件 - Java - 不读取我写入文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348495/

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