今天给各位分享java获取文件字节数的知识,其中也会对java 读取文件字节进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、java中如何读取某个文件的某个字节?看清具体要求2、java读取txt文件每一行多少个字节3、java如何编程实现获取文件的长度4、用java如何读取一个文件的指定字节位置的数据?5、java读取文件时如何获得已读取的字节大小?
java中如何读取某个文件的某个字节?看清具体要求
RandomAccessFile类
public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable
此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte
数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过
getFilePointer 方法读取,并通过 seek 方法设置。
public void seek(long pos)
throws IOException设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。
参数:pos – 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。
抛出:IOException – 如果
pos 小于 0 或者发生 I/O 错误。
java读取txt文件每一行多少个字节
import java.io.File;
import java.io.RandomAccessFile;
/**
* 2016年8月31日下午7:00:37
*
* @author 3306 TODO 计算字节数
*
*/
public class FileUtil {
public static void main(String[] args) {
String filePath = “d:/test.txt”;// d盘必须存在test.txt文件
readEachLine(filePath);
}
/**
* 打印文件每一行的字节数
*
* @param filePath
* 文件路径
*/
private static void readEachLine(String filePath) {
try {
File file = new File(filePath);
if (file.exists()) {// 文件存在
RandomAccessFile accessFile = new RandomAccessFile(file, “r”);// 只赋予读的权限
String line = “”;
long lineIndex = 1;
while (null != (line = accessFile.readLine())) {
System.out.println(“line” + (lineIndex++) + “: ” + line.getBytes().length);// 打印行号和字节数
}
accessFile.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
java如何编程实现获取文件的长度
File file = new File(“文件路径”);
System.out.println(file.length());//输出的是文件的字节数
这样就可以获得文件的长度了
用java如何读取一个文件的指定字节位置的数据?
可以使用RandomAccessFile类。例如要从100字节开始输出工作目录下的data.txt文件的类容。
package konw.test1;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Test1
{
public static void main(String[] args)
{
long pos = 100;
try
{
String str = “”;
RandomAccessFile randomAccessFile = new RandomAccessFile(“data.txt”, “rw”);
randomAccessFile.seek(pos);//将文件流的位置移动到pos字节处
while( (str = randomAccessFile.readLine()) != null)
{
System.out.println(str);
}
randomAccessFile.close();
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
java读取文件时如何获得已读取的字节大小?
// 查看copy例子即可。
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;
public class Bar extends JFrame implements PropertyChangeListener
{
private static final long serialVersionUID = 1L;
private static final int MIN = 0;
private static final int MAX = 100;
private JProgressBar progressBar;
private JButton copy;
private Task task;
public Bar(String title)
{
setTitle(title);
setLayout(new BorderLayout());
progressBar = new JProgressBar(MIN, MAX);
progressBar.setValue(MIN);
progressBar.setStringPainted(true);
add(progressBar, BorderLayout.CENTER);
copy = new JButton(“拷贝”);
copy.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
start();
copy.setEnabled(false);
}
});
add(copy, BorderLayout.EAST);
}
class Task extends SwingWorkerVoid, Void
{
@Override
public Void doInBackground()
{
setProgress(MIN);
File file = new File(“a.jpg”);
long size = file.length();
byte[] bts = new byte[(int) (size / (Math.random() * 50 + MAX – 50))];
int length = 0;
long cLength = 0;
try
{
InputStream stream = new FileInputStream(file);
OutputStream os = new FileOutputStream(new File(“copy_aa.jpg”));
while((length = stream.read(bts)) 0)
{
os.write(bts, 0, length);
cLength += length;
setProgress((int) (cLength * MAX / size));
Thread.sleep(30);
}
os.flush();
os.close();
stream.close();
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
@Override
public void done()
{
setTitle(“拷贝完毕”);
Toolkit.getDefaultToolkit().beep();
copy.setEnabled(true);
setCursor(null);
}
}
public void propertyChange(PropertyChangeEvent evt)
{
if(“progress” == evt.getPropertyName())
{
int progress = (Integer) evt.getNewValue();
progressBar.setValue(progress);
}
}
private void start()
{
task = new Task();
task.addPropertyChangeListener(this);
task.execute();
setTitle(“正在拷贝…”);
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
private static void createAndShowGUI()
{
Bar frame = new Bar(“Bar”);
frame.setAlwaysOnTop(true);
frame.setSize(280, 60);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
java获取文件字节数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 读取文件字节、java获取文件字节数的信息别忘了在本站进行查找喔。