本文目錄一覽:
java選擇文件操作
你用I/0把要保存的東西,直接寫到*.ini文件中不就可以了嗎 這個是我寫連連看遊戲,用來保存記錄的,自己參考下,很簡單。 importjava.awt.Point; importjava.io.*; importjava.util.*; publicclassLoadAndSave{ privatestaticfinalPropertiesprop=newProperties(); publicstaticFilerecordFile=newFile(“record.dat”); publicstaticFilesetFile=newFile(“setup.ini”); publicstaticStringBuilder[]setLines; publicstaticintgetRecord(inttotal){ intseconds=999999999; try{ BufferedReaderbReader=newBufferedReader(newInputStreamReader(newFileInputStream(recordFile))); Stringline=null; while((line=bReader.readLine())!=null) try{ String[]values=line.split(“\t”); intn=Integer.parseInt(values[1]); ints=Integer.parseInt(values[2]); if(n==total
java中如何使用緩衝區對文件進行讀寫操作?
首先,了解下什麼是緩衝區:
電腦內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。
棧——就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區。裡面的變量通常是局部變量、函數參數等。
堆——就是那些由new分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一個new就要對應一個delete.如果程序員沒有釋放掉,那麼在程序結束後,操作系統會自動回收。
自由存儲區——就是那些由malloc等分配的內存塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。
全局/靜態存儲區——全局變量和靜態變量被分配到同一塊內存中,在以前的C語言中,全局變量又分為初始化的和未初始化的,在C++裡面沒有這個區分了,他們共同佔用同一塊內存區。
常量存儲區,這是一塊比較特殊的存儲區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改)
電腦緩衝區就是預留下來的做為急用的那一部分,為暫時置放輸出或輸入資料的內存。
如何對緩衝區進行操作:
當我們讀寫文本文件的時候,採用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的類是InputStreamReader, 它是字節轉換為字符的橋樑。你可以在構造器重指定編碼的方式,如果不指定的話將採用底層操作系統的默認編碼方式,例如GBK等。使用FileReader讀取文件:
FileReader fr = new FileReader(“ming.txt”);
int ch = 0;
while((ch = fr.read())!=-1 )
{
System.out.print((char)ch);
}
其中read()方法返回的是讀取得下個字符。當然你也可以使用read(char[] ch,int off,int length)這和處理二進制文件的時候類似。
事實上在FileReader中的方法都是從InputStreamReader中繼承過來的。read()方法是比較好費時間的,如果為了提高效率我們可以使用BufferedReader對Reader進行包裝,這樣可以提高讀取得速度,我們可以一行一行的讀取文本,使用readLine()方法。
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(“ming.txt”)));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}
了解了FileReader操作使用FileWriter寫文件就簡單了,這裡不贅述。
Eg.我的綜合實例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class testFile {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// file(內存)—-輸入流—-【程序】—-輸出流—-file(內存)
File file = new File(“d:/temp”, “addfile.txt”);
try {
file.createNewFile(); // 創建文件
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 向文件寫入內容(輸出流)
String str = “親愛的小南瓜!”;
byte bt[] = new byte[1024];
bt = str.getBytes();
try {
FileOutputStream in = new FileOutputStream(file);
try {
in.write(bt, 0, bt.length);
in.close();
// boolean success=true;
// System.out.println(“寫入文件成功”);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
// 讀取文件內容 (輸入流)
FileInputStream out = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(out);
int ch = 0;
while ((ch = isr.read()) != -1) {
System.out.print((char) ch);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
如何使用命令行編譯以及運行java文件
要想編譯和運行java文件,很簡單,只需要兩個命令:
(1)javac:作用:編譯java文件;使用方法: javac Hello.java ,如果不出錯的話,在與Hello.java 同一目錄下會生成一個Hello.class文件,這個class文件是操作系統能夠使用和運行的文件。
(2)java: 作用:運行.class文件;使用方法:java Hello,如果不出錯的話,會執行Hello.class文件。注意:這裡的Hello後面不需要擴展名。
下面舉例說明:
假設我有一個Hello.java文件放在D:\javatest 文件夾下。
打開cmd命令窗口,會出現C:\user\lenovo 這裡出現的是系統用戶名,這裡我們需要將路徑轉移到java文件所在目錄。
緊接着輸入 D:回車,會出現一下界面:
這時候我們需要定位到java文件所在目錄(這裡是javatest目錄),接着輸入 cd javatest 回車。
此時進入到D:\javatest目錄中,此時的Hello.java文件就在這裡
這時候我們就可以用javac命令編譯啦,輸入javac Hello.java回車
這裡如果沒有任何提示表示編譯成功,此時打開d:\javatest文件夾你會發現此時多了一個名為Hello.class的文件,這就是操作系統能夠運行的文件。
接着輸入 java Hello回車,你就會看到文件被運行的結果。
這裡有幾個要注意的問題
第一:Hello.java中的內容是一個類,這個類的名字與.java文件名字必須完全一致。如果不一致將出錯。這裡當你通過eclipse創建一個類文件的時候你就會理解的更清楚了,這裡不贅述。
第二:javac 和 java 命令的使用方法要注意,格式。
第三:要使用這兩命令,必須配置好環境變量。
java讀取文件操作
關於FileInputStream你的理解是對的,讀取操作是順序向前,讀過的不會再讀。
不過第二個參數0你可能是誤會了。它的作用不是指fis里的位置,而是指buffer里的偏移量。
在read中,0是指從buffer[0]開始保存數據;wirte中是指寫出的數據是從buffer[0]開始。
Java Doc里的解釋是這樣的:
int java.io.FileInputStream.read(byte[] b, int off, int len) throws IOException
b the buffer into which the data is read.
off the start offset in the destination array b
len the maximum number of bytes read.
java 文件夾操作
你好,按照你的要求代碼編寫如下,可以直接運行
import java.io.File;
public class test {
public static void main(String[] args) {
File root = new File(“d:\\”);
for (File file : root.listFiles()) {
if (file.isDirectory()) {
for (File f : file.listFiles()) {
String fileName = f.getName();
if (fileName.endsWith(“.png”)) {
System.out.println(file.getName());
break;
}
}
}
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230548.html