本文目錄一覽:
- 1、如何製作批處理文件來運行java程序
- 2、編譯java文件時出現:「javac不是內部或外部命令也不是可運行的程序或批處理文件」,如何處理?
- 3、java處理csv文件
- 4、java 文件處理 路徑有空格怎麼解決
- 5、java 讀寫文件異常怎麼處理
- 6、java 大文件分片上傳處理如何實現?
如何製作批處理文件來運行java程序
操作步驟
1、新建一個文件夾,將要執行java程序(可使用eclipse導出的可執行的jar包)拷貝到該文件夾中;
2、將jdk中jre文件夾拷貝到要執行的java程序所在的文件夾;
3、在java程序所在的文件夾中新建一個bat文件。
bat文件樣例:
樣例一:
@echo off
set PATH=.;%CD%\SocketAdapter_lib\jre\bin
set CLASSPATH=.
start java.exe -jar SocketAdapter.jar
@pause
樣例二:
@echo off
start SocketAdapter_lib\jre\bin\java -jar SocketAdapter.jar
@pause
註:
可以在沒有安裝JRE的環境中,運行Java應用程序
java.exe 具體使用參見cmd中輸入java -help
javaw.exe 相對於 java.exe 執行java程序過程中MS-DOS不可見
對於安裝了JRE的環境中,第2步可以省略,bat文件如下
樣例三:
@echo off
java -jar SocketAdapter.jar
@pause
編譯java文件時出現:「javac不是內部或外部命令也不是可運行的程序或批處理文件」,如何處理?
如果java命令可以用,那麼javac命令應該也可以用。\x0d\x0a出現你這種情況的原因有二:\x0d\x0a(1)已經正確安裝JDK,但沒有重新打開控制台,導致javac命令不能用。\x0d\x0a解決方法:關閉原有控制台,重新打開控制台,輸入javac測試。\x0d\x0a\x0d\x0a(2)已經正確安裝JDK,但沒有設置path環境變數,導致javac命令不可用。\x0d\x0a解決方法:設置環境變數,將類似「C:\Program Files\Java\jdk1.6.0_17\bin」的值添加到path環境變數中。重新打開控制台,輸入javac測試。\x0d\x0a\x0d\x0a 至於「java -version」顯示安裝成功,這並不能說明什麼。java是跨平台的語言,在Windows、Linux等多種操作系統平台上都預裝有java的運行環境JRE,在它的bin目錄下就有java命令(用於運行Java程序),但沒有javac命令(用於編譯Java程序)。也就是說,即使你不安裝JDK,一樣可以使用java命令,但不能直接使用javac,除非安裝jdk,並設置path環境變數。
java處理csv文件
我來說一下大致的實現步驟,具體實現需要你自己去寫了
1.檢索數據,檢索到的數據假定為一個list
2.你需要自己寫一個objectToString之類的方法來把檢索到的數據轉化為一個String或StringBuffer,就是往各欄位間插”,”,往個記錄間插”\r\n”,如此這類的轉換,假定轉換好的字元串為strResult.
3.然後用下面的代碼寫在後台來控制下載,文件名那裡你可以把時間格式控制好,或者用前台傳過來的參數做名字。
response.setContentType(“application/download;charset=UTF-8”);
response.setHeader(“Content-disposition”,”attachment;filename=\”” +new Date()+”.csv\””);
OutputStream o = response.getOutputStream();
byte b[] = strResult.getBytes();
try{
o.write(b);
}catch(IOException e){
e.printStackTrace();
}finally{
o.close();
}
java 文件處理 路徑有空格怎麼解決
java路徑中有空格是可以被正常識別的,所以不用考慮空格問題。
舉例:
可以通過「FileOutputStream」創建文件實例,之後過「OutputStreamWriter」流的形式進行存儲,
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(「D:/Progrem files/test.txt」),”GBK”);//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
pw.write(“我是要寫入到記事本文件的內容”);//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。典型的就是系統盤的路徑。
java 讀寫文件異常怎麼處理
public class ReadFromFile {
/**
* 以位元組為單位讀取文件,常用於讀二進位文件,如圖片、聲音、影像等文件。
*/
public static void readFileByBytes(String fileName) {
File file = new File(fileName);
InputStream in = null;
try {
System.out.println(“以位元組為單位讀取文件內容,一次讀一個位元組:”);
// 一次讀一個位元組
in = new FileInputStream(file);
int tempbyte;
while ((tempbyte = in.read()) != -1) {
System.out.write(tempbyte);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
return;
}
try {
System.out.println(“以位元組為單位讀取文件內容,一次讀多個位元組:”);
// 一次讀多個位元組
byte[] tempbytes = new byte[100];
int byteread = 0;
in = new FileInputStream(fileName);
ReadFromFile.showAvailableBytes(in);
// 讀入多個位元組到位元組數組中,byteread為一次讀入的位元組數
while ((byteread = in.read(tempbytes)) != -1) {
System.out.write(tempbytes, 0, byteread);
}
} catch (Exception e1) {
e1.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e1) {
}
}
}
}
/**
* 以字元為單位讀取文件,常用於讀文本,數字等類型的文件
*/
public static void readFileByChars(String fileName) {
File file = new File(fileName);
Reader reader = null;
try {
System.out.println(“以字元為單位讀取文件內容,一次讀一個位元組:”);
// 一次讀一個字元
reader = new InputStreamReader(new FileInputStream(file));
int tempchar;
while ((tempchar = reader.read()) != -1) {
// 對於windows下,\r\n這兩個字元在一起時,表示一個換行。
// 但如果這兩個字元分開顯示時,會換兩次行。
// 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
if (((char) tempchar) != ‘\r’) {
System.out.print((char) tempchar);
}
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
System.out.println(“以字元為單位讀取文件內容,一次讀多個位元組:”);
// 一次讀多個字元
char[] tempchars = new char[30];
int charread = 0;
reader = new InputStreamReader(new FileInputStream(fileName));
// 讀入多個字元到字元數組中,charread為一次讀取字元數
while ((charread = reader.read(tempchars)) != -1) {
// 同樣屏蔽掉\r不顯示
if ((charread == tempchars.length)
(tempchars[tempchars.length – 1] != ‘\r’)) {
System.out.print(tempchars);
} else {
for (int i = 0; i charread; i++) {
if (tempchars[i] == ‘\r’) {
continue;
} else {
System.out.print(tempchars[i]);
}
}
}
}
} catch (Exception e1) {
e1.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
/**
* 以行為單位讀取文件,常用於讀面向行的格式化文件
*/
public static void readFileByLines(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次讀入一行,直到讀入null為文件結束
while ((tempString = reader.readLine()) != null) {
// 顯示行號
System.out.println(“line ” + line + “: ” + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
/**
* 隨機讀取文件內容
*/
public static void readFileByRandomAccess(String fileName) {
RandomAccessFile randomFile = null;
try {
System.out.println(“隨機讀取一段文件內容:”);
// 打開一個隨機訪問文件流,按只讀方式
randomFile = new RandomAccessFile(fileName, “r”);
// 文件長度,位元組數
long fileLength = randomFile.length();
// 讀文件的起始位置
int beginIndex = (fileLength 4) ? 4 : 0;
// 將讀文件的開始位置移到beginIndex位置。
randomFile.seek(beginIndex);
byte[] bytes = new byte[10];
int byteread = 0;
// 一次讀10個位元組,如果文件內容不足10個位元組,則讀剩下的位元組。
// 將一次讀取的位元組數賦給byteread
while ((byteread = randomFile.read(bytes)) != -1) {
System.out.write(bytes, 0, byteread);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (randomFile != null) {
try {
randomFile.close();
} catch (IOException e1) {
}
}
}
}
/**
* 顯示輸入流中還剩的位元組數
*/
private static void showAvailableBytes(InputStream in) {
try {
System.out.println(“當前位元組輸入流中的位元組數為:” + in.available());
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String fileName = “C:/temp/newTemp.txt”;
ReadFromFile.readFileByBytes(fileName);
ReadFromFile.readFileByChars(fileName);
ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}
java 大文件分片上傳處理如何實現?
如果是頁面傳至後台,那麼頁面上傳文件的時候進行分片處理,如果是後台之間調用,直接代理裡面分片處理。關鍵點,當前一片傳輸完畢之後,收到成功返回才開始傳輸下一片如果傳輸失敗則重傳當前片數,超時重傳。傳輸時帶上文件唯一標識,文件當前片數,總片數,當前片數md5校驗值等。必要參數。 大致為這樣,注意不要內存泄露了。
原創文章,作者:KBVO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/137833.html