『壹』 java中怎麼把位元組數組中的數字替換掉
給其他人寫的一個小例子,和你的要求差不多,希望你可能理解.
public static void main(String[] args) {
int a[] = { 1, 4, 6, 9, 13, 16, 19, 28, 40, 100 }; //聲明數組並賦值 長度為
int number, i, j; //聲明變數
System.out.println("原始數組為:");
for (i = 0; i < 10; i++) {//循環列印數組裡面的數據
System.out.print(a[i] + "\t");
}
System.out.println("\n"); //列印換行
Scanner input = new Scanner(System.in);//實例化控制台接收函數
System.out.print("輸入要刪除的數:");
number = input.nextInt();//接收控制用戶輸入的數據並賦值給NUMBER
for (i = 0; i < 10; i++) {//循環數組
if (a[i] == number) {//判斷如果用戶輸入的數字和數組中已存在的數字是否能夠批匹配 (1.1)
break; //相等跳出
}
}
if (i < 10) {//如果上述 1.1 條件成立 則 I一定小於10 如果不成立說明用戶輸入的沒有匹配到數組數據
if (i <= 8) {
for (j = i; j < 9; j++) {//i下標對應的值即是和用戶輸入相匹配的數據
a[j] = a[j + 1];//從I下表的數值開始,數組中的值循環往前移動一位,如果原來在數組中第3位置的現在變成第二.這樣就可以去掉那個數據
}
}
System.out.println("\n刪除後的數組為:");
for (i = 0; i < 9; i++) { //列印數據
System.out.print(a[i] + "\t");
}
System.out.println("\n");
} else {
System.out.println("\n數組中沒有這個數!");
}
}
『貳』 在java,只改變文件前512位元組,其他的不改變
按java.io.FileInputStream讀、java.io.FileOutputStream寫入另一個文隱遲件,,,,,,遲攜團在寫入時,忽略前面的碼橘512位元組
『叄』 如何用java讀取一個文件中的位元組
BufferedReader br=new BufferedRead(new FileReader(file))
StringBuffer sb=new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
}
『肆』 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實現java的2進制文件位元組序轉換到C/C++的2進制文件位元組序
package admit.action;/*用JAVA讀取各種計算機文件系統的文件列表 當你安裝了jdk,在jdk的類庫里,有一個標準的File類,通過該類,可以很方便的實現瀏覽各種文件系統的功能。
File類:
java.lang.Object
|
+--java.io.File
File類擴展了Object對象,實現了Serializable, Comparable定義的介面,可以通過File的一個實例對jvm上的文件系統進行各種操作,下面我編寫了一個FileViewer類,該類通過Iterator類將一個文件列表實現對列表的迭代操作
FileViewer.java */import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;public class ReadPath {
File myDir; File[] contents; Vector vectorList; Iterator currentFileView; File currentFile; String path; public ReadPath() {
path = new String("");
vectorList = new Vector();
} public ReadPath(String path) {
this.path = path;
vectorList = new Vector();
} /**
* 設置瀏覽的路徑
*/
public void setPath(String path) {
this.path = path;
} /***************************************************************************
* 返回當前目錄路徑
*/
public String getDirectory() {
return myDir.getPath();
} /**
* 刷新列表
*/
public void refreshList() { if (this.path.equals(""))
path = "c:\\";
myDir = new File(path); vectorList.clear();
contents = myDir.listFiles();
// 重新裝入路徑下文件
for (int i = 0; i < contents.length; i++) {
vectorList.add(contents[i]);
}
currentFileView = vectorList.iterator();
} /**
* 移動當前文件集合的指針指到下一個條目
*
* @return 成功返回true,否則false
*/
public boolean nextFile() {
while (currentFileView.hasNext()) {
currentFile = (File) currentFileView.next();
return true;
}
return false;
} /**
* 返回當前指向的文件對象的文件名稱
*/
public String getFileName() {
return currentFile.getName();
} /**
* 返回當前指向的文件對象的文件尺寸
*/
public String getFileSize() {
return new Long(currentFile.length()).toString();
} /**
* 返回當前指向的文件對象的最後修改日期
*/
public String getFileTimeStamp() {
return new Date(currentFile.lastModified()).toString();
} /**
* 返回當前指向的文件對象是否是一個文件目錄
*/
public boolean getFileType() {
return currentFile.isDirectory();
} /*
* 通過setPath()方法設定要瀏覽的目錄(注意如果操作系統為微軟操作系統,每個路徑分隔符應寫成兩個斜杠\),nextFile()方法用來移動列表記錄,可以通過getFileName()得到文件或文件夾名稱,通過getFileSize()得到文件尺寸,通過getFileTimeStamp()得到文件的最後修改時間,通過getFileType()判斷是否是一個文件目錄。
* 編寫一個test例子測試這個FileViewer類
*/ public ArrayList okpath(){
ReadPath f = new ReadPath();
f.setPath("c:\\aaa\\");
f.refreshList();
ArrayList list = new ArrayList();
while (f.nextFile()) {
list.add(f.path+f.getFileName());
}
return list;
}
/* public static void main(String[] args) {
ReadPath f = new ReadPath();
ArrayList list1 = f.okpath();
for(int j=0;j<list1.size();j++){
System.out.println(list1.get(j));
}
}*/ }
package admit.action;
import java.sql.*;
import java.util.ArrayList;
import java.io.*;
import oracle.sql.*;
public class WriteBlob { public static void main(String[] args) {
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.100:1521:adminsys","admit","wuyue");
conn.setAutoCommit(false);
ReadPath readPath=new ReadPath();
ArrayList list = readPath.okpath();
/* String ff[]=new String[2];
String fileName = "c://tupian.gif"; */
for(int i=0;i<list.size();i++){
System.out.println("路徑名="+list.get(i).toString());
File f = new File(list.get(i).toString());
FileInputStream fin = new FileInputStream(f);
BLOB blob = null; PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,context) values(?,empty_blob())");
pstmt.setString(1,""+list.get(i).toString()+"");
pstmt.executeUpdate();
pstmt.close(); pstmt = conn.prepareStatement("select context from javatest where name= ? for update");
pstmt.setString(1,""+list.get(i).toString()+"");
ResultSet rset = pstmt.executeQuery();
if (rset.next()) blob = (BLOB) rset.getBlob(1); pstmt = conn.prepareStatement("update javatest set context=? where name=?"); OutputStream out = blob.getBinaryOutputStream(); int count = -1, total = 0;
byte[] data = new byte[(int)fin.available()];
fin.read(data);
out.write(data);
/*
byte[] data = new byte[blob.getBufferSize()]; 另一種實現方法,節省內存
while ((count = fin.read(data)) != -1) {
total += count;
out.write(data, 0, count);
}
*/
fin.close();
out.close(); pstmt.setBlob(1,blob);
pstmt.setString(2,""+list.get(i).toString()+"");
pstmt.executeUpdate();
pstmt.close();
System.out.println("插入成功!!!");
}
conn.commit();
conn.close();
} catch (SQLException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
『陸』 java文件轉換為byte數組
那你可以把文件的都分成 一小部分來寫啊
如:
FileInputStreamins=newFileInputStream(file);//定位流
BufferedInputStreambr=newBufferedInputStream(ins);//讀取流
OutputStreamous=response.getOutputStream();
/*這段應該就是你原本的寫內法*/
/*byteb[]=newbyte[(int)file.length()];
while(br.read(b)!=-1){
//將b中的數據容寫到客戶端的內存
ous.write(b);
}*/
/*改成這種就可以了*/
byteb[]=newbyte[1024];
intlen=0;
while((len=br.read(b))!=-1){
ous.write(b,0,len);
}
望採納,加分
『柒』 java中怎樣按位元組讀取文件並復制到另一個文件夾
這里以位元組流,FileOutputStream為例。代碼例子如下:
importjava.io.File;
/**
*把一個文件夾中的文件復制到一個指定的文件夾
*@authoryoung
*
*/
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFile{
publicstaticvoidmain(String[]args){
/*指定源exe文件的存放路徑*/
Stringstr="f:/jdk-1_5_0_06-windows-i586-p.exe";
/*指定復制後的exe的目標路徑*/
Stringstrs="e:/.exe";
/*創建輸入和輸出流*/
FileInputStreamfis=null;
FileOutputStreamfos=null;
try{
/*將io流和文件關聯*/
fis=newFileInputStream(str);
fos=newFileOutputStream(strs);
byte[]buf=newbyte[1024*1024];
intlen;
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
fis.close();
fos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
『捌』 JAVA里0-255的BYTE怎麼轉換為-127-128的BYTE
byte [] bytes = new byte[1024];
int size;
while( (size=fin.read(bytes))>0){
fou.write(bytes, 0, size);
}
『玖』 java如何調用RandomAccessFile讀取txt文件第3個位元組並替換成1,然後輸出整個
File file = new File("tcp.txt");
FileInputStream stream = new java.io.FileInputStream(file);
int pos =3;//胡胡清從做宏第幾個位元組開始讀
int len = 1;//讀幾個位元組
stream.skip(pos); //褲前跳過之前的位元組數
byte[] b = new byte[len];
stream.read(b);
System.out.print(new String(b));
stream.close();