我正在尝试回答以下问题:
使用数组或ArrayList并生成20个随机数(整数 0到100之间的值.100不包括在内)。该计划应该 执行以下任务。
将数组或ArrayList中的数字写入文件。
- 醇>
从文件中读取数字,并以十进制,十六进制和二进制形式显示在控制台上。
到目前为止,我已经将随机生成器运行良好,并且正在编写文件。至于重新读取文件并将文件中的数字显示为十六进制,十进制和二进制......我完全迷失了。这是我到目前为止。
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
public class Write {
public static void main(String[] args) throws IOException {
Random generator = new Random();
ArrayList numList = new ArrayList();
int n = 0;
while( n < 20 ) {
int numGen = generator.nextInt(100);
numList.add(numGen);
n++;
}
String result = numList.toString().replaceAll("[\\[\\]]", "");
result = result.replace(",", " ");
System.out.print(result);
String filePath = "C:/Users/Username/Desktop/FileIOTest/coding_assignment.txt";
File f = new File(filePath);
FileOutputStream fileout = new FileOutputStream (f);
DataOutputStream dataOut = new DataOutputStream(fileout);
dataOut.writeBytes(result);
dataOut.close();
}
}
答案 0 :(得分:0)
从您的代码中,您还没有开始编写从文件中读取数字的代码。
关于读取值,您可以使用BurreferReader逐行读取数字。然后,您可以使用String.split方法使用split(" ")
关于将int值转换为 Binary 和 Hex 模式,您可以在toBinaryString
类中使用toHexString
和Integer
方法,像
int i = 20;
System.out.println(i);//Print int value
System.out.println(Integer.toBinaryString(i)); //Print Binary string
System.out.println(Integer.toHexString(i)); // Print Hex string
Console中的输出如下:
20
10100
14
答案 1 :(得分:0)
我想你应该尝试自己完成这些行,所以我只给你一些基本的输入。
从文件中读取三行:
fileIn
dataIn
readBytes
这些线条应该很简单。要获取数字,请使用
split
Integer.ParseInt
要显示,您可以参考
Integer.toHexString
Integer.toBinaryString
答案 2 :(得分:0)
要将数字从基数10转换为二进制和十六进制,您只需使用以下方法:
Integer.toBinaryString(n);
Integer.toHexString(n);
但是,如果您确实想自己编码,请尝试查看以下网站: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html
它有助于提供一种简单的算法,可以从基数10转换为任何其他数字基础。