FileInputStream 类对于以字节序列的形式从文件中读取数据非常有帮助。 FileInputStream 用于读取原始字节流,例如图像、音频、视频等。对于读取字符流,推荐使用 FileReader。它最初是在 JDK 1.0 中引入的。
FileInputStream skip() 方法
FileInputStream 中的 skip(n) 方法非常有用,因为它丢弃了输入流开头的 n 字节数据。我们可以通过考虑以下示例来理解它的工作原理,
我们正在通过 FileInputStream 读取一个字符流,我们希望在跳过流中的前八个字符后读取它。让字符串为“GeeksforGeeks”,因此跳过前八个字符后,我们的字符串将变为“Geeks”。
skip() 方法对于完成上述任务很有用。该方法在 Java.io 包的 FileInputStream 类中定义。
Java I/O 包帮助用户执行所有输入输出操作。这些流支持所有对象、数据类型、字符、文件等,以完全执行 I/O 操作。
用法:
Input_File_Stream.skip(n) Input_File_Stream:The file input stream.
参数:
- n - 一个非负整数。
- 要从字符流中跳过的字节。
返回值:它返回实际跳过的字节数。
异常:IOException− 如果 n 为负整数或发生 I/O 错误。
范例1:
Java
// Java program to demonstrate the working
// of skip() method in FileInputStream
// Importing the class files
// defined under io Package
import java.io.FileInputStream;
import java.io.IOException;
// Public class
public class GeeksforGeeks {
// Main method
public static void main(String[] args)
throws IOException
{
FileInputStream inputFileStream = null;
// Variables to store the fifth character
int integerValue = 0;
char characterValue;
try {
// Create new file input stream
inputFileStream = new FileInputStream(
"C:\\Users\\harsh\\Desktop\\GFG\\inputFile.txt");
// Skip 4 bytes from the beginning
// in the file input stream
inputFileStream.skip(4);
// Read bytes from this stream
// (first character only)
integerValue = inputFileStream.read();
// Converting integer to character type
characterValue = (char)i;
// Print the character
System.out.print("Character read:"
+ characterValue);
}
catch (Exception exception) {
// If any error occurs
exception.printStackTrace();
}
finally {
// Releasing all system resources
if (inputFileStream != null)
inputFileStream.close();
}
}
}
// This code is contributed by Bhuwanesh
本地系统编译步骤:
1、我们在本地保存了上面的程序,名称为“GeeksforGeeks”:
源代码文件
2. 现在让我们创建一个名为“inputFile”的文本文件:
文本文件
3. 我们需要在创建的文本文件中输入一些文本。例如,我们在文本文件中写入了 “GeeksforGeeks”。
文本文件数据
4. 我们现在将使用命令提示符通过 javac 编译器编译我们的程序:
javac GeeksforGeeks.java
源代码文件的编译
5. 如下图所示,生成了 GeeksforGeeks.class 字节码文件。现在使用以下命令运行程序:
java GeeksforGeeks
输出:
输出
输出说明:由于我们已将 4 作为参数传递给程序中的 skip() 函数。正如我们在程序的输出中看到的,前四个字符(或字节)被跳过(‘G’、‘e’、‘e’、‘k’)。 GeekforGeeks 中的第五个字符是“s”,因此,“s”打印在控制台上。
范例2:
Java
// Java program to demonstrate the working
// of skip() method in FileInputStream
// Importing the FileInputStream class
import java.io.FileInputStream;
// Importing the IOException class
import java.io.IOException;
// Public class
public class GeeksforGeeks {
// Main method
public static void main(String[] args)
throws IOException
{
FileInputStream inputFileStream = null;
int integerValue = 0;
char characterValue;
try {
// Create new file input stream
// Give the full path of the input file
inputFileStream = new FileInputStream(
"C:\\Users\\harsh\\Desktop\\GFG\\inputFile.txt");
// Skip 8 bytes from the beginning in the file
// input stream
inputFileStream.skip(8);
// Print on console
System.out.print("String read:");
// Iterate till EOF is not reached
while ((integerValue = inputFileStream.read())
!= -1) {
// converts integer to character
characterValue = (char)i;
// prints character
System.out.print(characterValue);
}
}
catch (Exception exception) {
// If any error occurs
exception.printStackTrace();
}
finally {
// Releasing all system resources
if (inputFileStream != null)
inputFileStream.close();
}
}
}
// This code is contributed by Bhuwanesh
为了在本地系统上编译上述程序,我们可以按照我们在示例 1 中提到的相同步骤进行操作。编译后,我们可以运行程序,它会生成以下输出。
输出:
输出
输出说明:正如您在输出中看到的那样,前八个字符被跳过('G'、'e'、'e'、'k'、's'、'f'、'o'、'r')。剩下的字符串是 “Geeks”,所以它会打印在控制台上。
相关用法
- Java FileInputStream read()用法及代码示例
- Java FileInputStream close()用法及代码示例
- Java FileInputStream getFD()用法及代码示例
- Java FileInputStream finalize()用法及代码示例
- Java FileInputStream getChannel()用法及代码示例
- Java FileInputStream available()用法及代码示例
- Java Stream skip()用法及代码示例
- Java Scanner skip()用法及代码示例
- Java Reader skip(long)用法及代码示例
- Java CharArrayReader skip(long)用法及代码示例
- Java StringReader skip(long)用法及代码示例
- Java ByteArrayInputStream skip()用法及代码示例
- Java PushbackReader skip(long)用法及代码示例
- Java BufferedInputStream skip(long)用法及代码示例
- Java BufferedReader skip(long)用法及代码示例
- Java PushbackInputStream skip()用法及代码示例
- Java IntStream skip()用法及代码示例
- Java DoubleStream skip()用法及代码示例
- Java LongStream skip()用法及代码示例
- MongoDB skip()用法及代码示例
- Tensorflow.js tf.data.Dataset.skip()用法及代码示例
注:本文由纯净天空筛选整理自bhuwanesh大神的英文原创作品 FileInputStream skip() Method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。