public static byte[] readFile (String filePath, int bufsize){ byte[] retval = null; try { RandomAccessFile raf = new RandomAccessFile(filePath, "rw"); FileChannel inChannel = raf.getChannel(); ByteBuffer buf = ByteBuffer.allocate(bufsize); int byteRead = inChannel.read(buf); int readLength = 0; while (byteRead != -1){ buf.flip(); byte[] tempval = null; //以下代码划重点!!!!!!!! if (retval == null){ retval = new byte[byteRead]; }else{ tempval = retval; readLength = tempval.length; retval = new byte[readLength+byteRead]; System.arraycopy(tempval, 0, retval, 0, tempval.length); } int i = readLength; while (buf.hasRemaining()){ byte b = buf.get(); retval[i] = b; i++; } buf.clear(); byteRead = inChannel.read(buf); } raf.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return retval; }
相关推荐
import java.nio.charset.StandardCharsets; public class SpeechToText { private static final String API_URL = "https://api.xunfei.cn/rtasr/v1/async"; private static final String API_KEY = "your_api_...
1. **基础语法与数据类型**:Java提供了八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。通过实例,你可以学习如何声明、初始化和操作这些...
import java.nio.charset.StandardCharsets; import java.util.Base64; public class SignatureGenerator { private static final String HMAC_SHA256 = "HmacSHA256"; private static final String SECRET_KEY =...
**1.2.6 Java I/O & NIO** - **Java I/O** - `InputStream/OutputStream` - `Reader/Writer` - 文件读写 - **Java NIO** - `FileChannel` - `ByteBuffer` - `Selector` - **文件编码与字符集** - UTF-8, GBK...
Java有8种基本数据类型,分别是:`char`、`byte`、`short`、`int`、`long`、`float`、`double`和`boolean`。`String`不是基本数据类型,它是一个类,属于对象类型。基本类型的值直接存储在栈中,而对象的引用存储在...
Java的基本数据类型包括:`byte`, `short`, `int`, `long`, `float`, `double`, `char`, `boolean`。这些类型直接存储在内存中,而`String`类则是引用类型,它在Java中是一个对象,存储在堆内存中。`String`类提供了...
- **基本数据类型**:包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。 - **变量和常量**:声明变量时需要指定数据类型,常量则用final关键字标识。 - **...
- **基本数据类型**:byte、short、int、long、float、double、char、boolean。 - **引用数据类型**:类(Class)、接口(Interface)、数组。 4. **String、StringBuilder和StringBuffer的区别** - **String**...
以上只是Java面试题中的一些基础知识点,实际面试中还会涉及到更多高级概念,如并发控制、设计模式、集合框架、IO/NIO、网络编程、JVM内存管理等。理解并熟练掌握这些知识是成为一名合格的Java开发者的关键。
Java有八种基本数据类型,包括四个整型(byte、short、int、long)、两个浮点型(float、double)、一个字符型(char)和一个布尔型(boolean)。它们的字节占用分别为:byte(1字节)、short(2字节)、int(4字节...
- **数据类型与变量**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。理解它们的范围和用法是基础。 - **运算符与表达式**:包括...
使用java.nio.charset包中的Charset类进行编码转换,如new String(byte[], "GB2312").getBytes("ISO-8859-1")。 【数据库访问】 Statement用于执行静态SQL语句,PreparedStatement预编译SQL语句,能防止SQL注入,...
### 互联网大厂Java面试题合集解析 #### 京东篇 ##### 8.1.0 SQL注入检测方法与SQLMap工作原理 - **SQL注入检测**:SQL注入是一种常见的Web安全漏洞,攻击者可以通过篡改SQL语句来获取未经授权的数据访问。检测SQL...
25. **Java IO与NIO**: IO基于流,是阻塞的;NIO是Non-blocking I/O,支持选择器和多路复用,更适合高并发场景。 26. **反射机制**: 反射允许程序在运行时动态获取类的信息(如类名、属性、方法)并调用。 27....
Java中的switch语句不能作用于byte、long或String类型。Java中的Math.round()函数用于四舍五入,Math.round(11.5)等于12,Math.round(-11.5)等于-11。 在Java中,float f=3.4是正确的,但直接将一个整数值加到short...
11. **switch语句**:在Java 7之后,switch可以作用于byte、char、short、int、枚举类型和String。 12. **length()方法**:数组有length属性,不是方法;String有length()方法。 13. **跳出多重嵌套循环**:使用`...
- Java NIO(New IO)提供了更高效的缓冲和非阻塞I/O操作。 #### 50. Java中的泛型(Generics) - 泛型允许在编译时检查类型安全,避免了运行时的类型转换错误。 - 泛型可以应用于类、接口和方法,提高了代码的复用...
`ByteBuffer`提供了更高效的数据存取方式,相比普通的`byte[]`数组,它能够更好地利用内存缓存机制,减少CPU缓存未命中率,从而提高整体性能。 #### 七、字符串密码隐藏优化 在实现字符串密码隐藏功能时,可以优化...