Java 这是正确的吗?如何从文件中加载字节?
我需要使用Java从文件中加载字节。是这样吗Java 这是正确的吗?如何从文件中加载字节?,java,file,byte,inputstream,bufferedreader,Java,File,Byte,Inputstream,Bufferedreader,我需要使用Java从文件中加载字节。是这样吗 InputStream ips=new FileInputStream(file); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String line; String cle = "" ; while ((line=br.readLine())!=null){ c
InputStream ips=new FileInputStream(file);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String line;
String cle = "" ;
while ((line=br.readLine())!=null){
cle+=line
}
---> cle.getBytes()
不,绝对不是这样做的:
- 当您从文件中读取字节时,您正在将字节转换为文本
- 您正在删除所有换行符(它们不是从
返回的)readLine
- 您正在将文本转换回字节
读取器
——只需使用InputStream
。理解二进制数据和文本数据是不同的,这一点非常重要。把他们中的任何一个当作另一个是一个非常糟糕的主意
如果您只想从我个人使用的文件及其类中读取所有数据:
或者,如果您已经有一个输入流
,请使用:
这也适用于。我将使用java.nio.file.Files.readAllBytes
byte[] bytes = Files.readAllBytes(Paths.get(path));
我发现这个
RandomAccessFile f=newrandomAccessFile(文件,“r”);字节[]cle=新字节[(int)f.length()];f.read(cle)代码>可以吗?我找到了这个RandomAccessFile f=新的RandomAccessFile(文件,“r”);字节[]cle=新字节[(int)f.length()];f、 阅读(cle)代码>还好吗?不太好。f、 读取(cle)返回它读取的实际字节数。你应该一直读到它返回-1。
byte[] data = ByteStreams.toByteArray(inputSTream);
byte[] bytes = Files.readAllBytes(Paths.get(path));