importjava.io.File;
importjava.io.RandomAccessFile;
/**
*2016年8月31日下午7:00:37
*
*@author3306TODO计算字节数
*
*/
publicclassFileUtil{
publicstaticvoidmain(String[]args){
StringfilePath="d:/test.txt";//d盘必须存在test.txt文件
readEachLine(filePath);
}
/**
*打印文件每一行的字节数
*
*@paramfilePath
*文件路径
*/
privatestaticvoidreadEachLine(StringfilePath){
try{
Filefile=newFile(filePath);
if(file.exists()){//文件存在
RandomAccessFileaccessFile=newRandomAccessFile(file,"r");//只赋予读的权限
Stringline="";
longlineIndex=1;
while(null!=(line=accessFile.readLine())){
System.out.println("line"+(lineIndex++)+":"+line.getBytes().length);//打印行号和字节数
}
accessFile.close();
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
『贰』 用java如何读取一个文件的指定字节位置的数据
可以使用RandomAccessFile类。例如要从100字节开始输出工作目录下的.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)如何获取字符串的字节数!
字符串是可以转变成字节数组,然后统计一下字节数组的长度即可,参考如下代码:
Java语言中,中文字符所占的字节数取决于字符的编码方式,一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;而采用UTF-8编码方式时,一个中文字符会占3个字节。
public static void main(String []args) throws UnsupportedEncodingException {
运行结果:2
System.out.println("测试".getBytes("ISO8859-1").length);
运行结果:4
System.out.println("测试".getBytes("GB2312").length);
运行结果:4
System.out.println("测试".getBytes("GBK").length);
运行结果:6
System.out.println("测试".getBytes("UTF-8").length);
}
C#截取字符串字节数 代码如下:
public int bytelenght(string str)
{
byte[] bytestr = System.Text.Encoding.Unicode.GetBytes(str);
int j = 0;
for (int i = 0; i < bytestr.GetLength(0); i++)
{
if (i % 2 == 0)
{
j++;
}
else
{
if (bytestr[i] > 0)
{
j++;
}
}
}
return j;
}
谢谢采纳
定义一个字符数组,然后根据字符长度循环得到字符
比如char ch[20];
这个20可以用字符实际长度getlength()获取
然后再循环获取字符
ch[i]
其实用不着那么复杂计算的。注意:C#中string.Length只是计算字符串“字符”的个数,不计算字节;但是汉字两个字节+数字(英文字符)一个字节,才是6个,简单的代码如下: byte[] bytes = Encoding.Default.GetBytes("1243我"); Default(根据自己究竟是汉字还是数字等,自动合理分配内存所需要的字节空间)
Console.WriteLine(bytes.Length);
byte[] System.Text.Encoding.Default.GetBytes(string s)
你就是一个byte一个byte读取的吧?一个汉字两个byte(不含surrogate情况),文件中存两个byte,你从文件中读取2个byte,就是这样 查看原帖>>
strRead = String.ValueOf(strRead.toCharArray(), 0, byBuffer.length]); 2、字符串转换成字节数组 byte[] byBuffer = new byte[200]; byBuffer= strInput.getBytes();注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。
『肆』 用java代码如何查看本地一个文件的大小
publicstaticvoidgetFileSize(Stringpath){
//传入文件路径
Filefile=newFile(path);
//测试此文件是否存在
if(file.exists()){
//如果是文件夹
//这里只检测了文件夹中第一层如果有需要可以继续递归检测
if(file.isDirectory()){
intsize=0;
for(Filezf:file.listFiles()){
if(zf.isDirectory())continue;
size+=zf.length();
}
System.out.println("文件夹"+file.getName()+"Size:"+(size/1024f)+"kb");
}else{
System.out.println(file.getName()+"Size:"+(file.length()/1024f)+"kb");
}
//如果文件不存在
}else{
System.out.println("此文件不存在");
}
}
『伍』 Java字符流读取文档,统计字节数,计算字符串出现次数,字符串代替,另存文档
packagep1;
importjava.io.FileReader;
importjava.io.FileWriter;
publicclassJ_ReadTxt
{
="柳永宋词.txt";
="景庄婉约.txt";
publicstaticvoidmain(String[]args)
{
[]cs=newchar[1];
intcount=0;
Stringresult="";
try
{
FileReaderfr=newFileReader(LIUYONG);
while(-1!=fr.read(cs))
{
Stringtemp=String.valueOf(cs);
result+=temp;
intb=temp.codePointAt(0);
if(b>127)
{
count+=2;
}
else
{
count++;
}
}
fr.close();
System.out.println("文档的字节数:"+count);
Stringtemp=""+result+"";
System.out.println("字符串“柳永”出现的次数:"+(temp.split("u67f3u6c38").length-1));
result=result.replaceAll("u67f3u6c38","u666fu5e84");
FileWriterfw=newFileWriter(JINGZHUANG);
fw.write(result);
fw.flush();
fw.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
『陆』 java读取文件时如何获得已读取的字节大小
//查看例子即可。
importjava.awt.BorderLayout;
importjava.awt.Cursor;
importjava.awt.Toolkit;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.beans.PropertyChangeEvent;
importjava.beans.PropertyChangeListener;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.OutputStream;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JProgressBar;
importjavax.swing.SwingWorker;
{
=1L;
privatestaticfinalintMIN=0;
privatestaticfinalintMAX=100;
;
privateJButton;
privateTasktask;
publicBar(Stringtitle)
{
setTitle(title);
setLayout(newBorderLayout());
progressBar=newJProgressBar(MIN,MAX);
progressBar.setValue(MIN);
progressBar.setStringPainted(true);
add(progressBar,BorderLayout.CENTER);
=newJButton("拷贝");
.addActionListener(newActionListener()
{
@Override
publicvoidactionPerformed(ActionEvente)
{
start();
.setEnabled(false);
}
});
add(,BorderLayout.EAST);
}
classTaskextendsSwingWorker<Void,Void>
{
@Override
publicVoiddoInBackground()
{
setProgress(MIN);
Filefile=newFile("a.jpg");
longsize=file.length();
byte[]bts=newbyte[(int)(size/(Math.random()*50+MAX-50))];
intlength=0;
longcLength=0;
try
{
InputStreamstream=newFileInputStream(file);
OutputStreamos=newFileOutputStream(newFile("_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(Exceptione)
{
e.printStackTrace();
}
returnnull;
}
@Override
publicvoiddone()
{
setTitle("拷贝完毕");
Toolkit.getDefaultToolkit().beep();
.setEnabled(true);
setCursor(null);
}
}
publicvoidpropertyChange(PropertyChangeEventevt)
{
if("progress"==evt.getPropertyName())
{
intprogress=(Integer)evt.getNewValue();
progressBar.setValue(progress);
}
}
privatevoidstart()
{
task=newTask();
task.addPropertyChangeListener(this);
task.execute();
setTitle("正在拷贝...");
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
()
{
Barframe=newBar("Bar");
frame.setAlwaysOnTop(true);
frame.setSize(280,60);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
publicstaticvoidmain(String[]args)
{
javax.swing.SwingUtilities.invokeLater(newRunnable()
{
publicvoidrun()
{
createAndShowGUI();
}
});
}
}
『柒』 如何用java读取一个文件中的字节
BufferedReader br=new BufferedRead(new FileReader(file))
StringBuffer sb=new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
}