java讀取指定文件
❶ java怎麼讀取文檔中指定內容
package com.lwj.demo;
import java.io.*;
public class RandomAccessFileDemo {
public static void main(String[] args) throws Exception {
RandomAccessFile file = new RandomAccessFile("file", "rw");
// 以下向file文件中寫數據
file.writeInt(20);// 佔4個位元組
file.writeDouble(8.236598);// 佔8個位元組
file.writeUTF("這是一個UTF字元串");// 這個長度寫在當前文件指針的前兩個位元組處,可用readShort()讀取
file.writeBoolean(true);// 佔1個位元組
file.writeShort(395);// 佔2個位元組
file.writeLong(2325451l);// 佔8個位元組
file.writeUTF("又是一個UTF字元串");
file.writeFloat(35.5f);// 佔4個位元組
file.writeChar('a');// 佔2個位元組
file.seek(0);// 把文件指針位置設置到文件起始處
// 以下從file文件中讀數據,要注意文件指針的位置
System.out.println("——————從file文件指定位置讀數據——————");
System.out.println(file.readInt());
System.out.println(file.readDouble());
System.out.println(file.readUTF());
file.skipBytes(3);// 將文件指針跳過3個位元組,本例中即跳過了一個boolean值和short值。
System.out.println(file.readLong());
file.skipBytes(file.readShort()); // 跳過文件中「又是一個UTF字元串」所佔位元組,注意readShort()方法會移動文件指針,所以不用加2。
System.out.println(file.readFloat());
}
}
❷ 用java怎麼從指定文件中的指定位置開始讀取
FileInputStream fis = FileInputStream(File file);指定文件
fis.skip(long n);指定位斗森置
byte[] bs = new byte[int length]; 指搭慶定長度知銷握
fis.read(bs); 得到內容
❸ 求大神幫我做java題目:讀取指定的文本文件,加密後寫入另一個文件。
按照你的要求編寫簡單加密(把每個英文字母向後移動3個字母)的Java程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class CA {
public static void main(String[] args) {
BufferedReader br = null;//定義一個緩存讀取類
BufferedWriter bw = null;//定義一個緩存寫入類
try {
File f_Source=new File("source.txt");//原始文件
br=new BufferedReader(new FileReader(f_Source));//從字元輸入流中讀取文本,緩沖各個字元,從而實現字元、數組和行的高效讀取。
File f_Target=new File("target.txt");//目標文件
bw=new BufferedWriter(new FileWriter(f_Target));//將文本寫入字元輸出流,緩沖各個字元,從而提供單個字元、數組和字元串的高效寫入。
String s="";//定義一個臨時變數,臨時存儲每行的文老拆本
while((s=br.readLine())!=null){//讀取文件中的每一行並存入臨時變數s,直到文件末尾.
s=s.trim();//去侍正棗掉每行前後的空格
String str="";//定義一個臨時變數,准備寫入的一行文本
for(int i=0;i<s.length();i++){//遍歷這一行文本的每個字元
char ch=s.charAt(i);//把這一行文本的中一個字元賦給一個字元變數
if(Character.isLetter(ch)){//如果這個字元是字母
if(Character.isUpperCase(ch)){//如清如果這個字元是大寫字母
if(ch-'A'+3>25){//如果這個字元向後移3個字元大於Z
ch=(char) ('A'+(ch-'A'+3)%26);//這個字元從A向後移相應的字元
}else{//如果這個字元向後移3個字元不大於Z
ch=(char) (ch+3);//這個字元向後移3個字元
}
}
if(Character.isLowerCase(ch)){//如果這個字元是小寫字母
if(ch-'a'+3>25){//如果這個字元向後移3個字元大於z
ch=(char) ('a'+(ch-'a'+3)%26);//這個字元從a向後移相應的字元
}else{//如果這個字元向後移3個字元不大於z
ch=(char) (ch+3);//這個字元向後移3個字元
}
}
}
str=str+ch;//把每個加密或沒加密的字元重新拼裝成一行字元串
}
bw.write(str);//把這一行字元串寫入目標文件
bw.newLine();//目標文件寫入換行符
}
} catch (Exception e) {//捕獲異常
e.printStackTrace();//輸出異常信息
}finally{
try {
bw.close();//關閉寫入緩沖流
br.close();//關閉讀取緩沖流
} catch (Exception e) {//捕獲異常
e.printStackTrace();//輸出異常信息
}
}
System.out.println("文件加密完畢!");
}
}
運行結果:
source.txt文件內容
we are the world.
abc xyz.
target.txt文件加密內容
zh h wkh zruog.
def abc.
❹ java 循環讀取一個指定文件夾下的所有文件,提供大致代碼的思路吧,謝謝~
publicstaticList<File>getFiles(Stringpath){
Fileroot=newFile(path);
備鏈List<File>files=newArrayList<File>();
if(!root.isDirectory()){
files.add(root);
}else{
File[]subFiles=root.listFiles();
for(Filef:subFiles){
褲滾培 files.addAll(getFiles(f.getAbsolutePath()));
}
}
returnfiles;
}
publicstaticvoidmain(String[]胡唯args){
List<File>files=getFiles("D:\usr\local\java\jdk1.6.0_30");
for(Filef:files){
System.out.println(f.getName());
}
}
大概就是這樣了,沒有做異常處理,自己看著辦~
❺ java讀取指定目錄下的文件內容
publicclassReadFromFile{
/**
*以位元組為單位讀取文件,常用於讀二進制文件,如圖片、聲音、影像等文件。
*/
(StringfileName){
Filefile=newFile(fileName);
InputStreamin=null;
try{
System.out.println("以位元組為單位讀取文件內容,一次讀一個位元組:");
//一次讀一個位元組
in=newFileInputStream(file);
inttempbyte;
while((tempbyte=in.read())!=-1){
System.out.write(tempbyte);
}
in.close();
}catch(IOExceptione){
e.printStackTrace();
return;
陸雹}
try{
System.out.println("以位元組為單位讀取文件內容,一次讀多個位元組:");
//一次讀多個位元組
byte[]tempbytes=newbyte[100];
intbyteread=0;
in=newFileInputStream(fileName);
ReadFromFile.showAvailableBytes(in);
//讀入多個位元組到位元組數組中,byteread為一次讀入的位元組數
while((byteread=in.read(tempbytes))!=-1){
System.out.write(tempbytes,0,byteread);
}
}catch(Exceptione1){
e1.printStackTrace();
}finally{
if(in!=null){
try{
in.close();
}catch(IOExceptione1){
}
}
}
}
/**
*以字元為單位讀取文件,常用於讀文本,數字等類型的文件
*/
(StringfileName){
Filefile=newFile(fileName);
Readerreader=null;
try{
System.out.println("以字元為單位讀取文件內容,一次讀一個位元組:");
//一次讀一個字元
reader=newInputStreamReader(newFileInputStream(file));
inttempchar;
while((tempchar=reader.read())!=-1){
//對於windows下, 這兩個字元在一起時,表示一個換行。
//但如果這兩個字元分開顯示時,會換兩次行。
鉛纖//因此,屏蔽掉 ,或者屏蔽 。否則,將會多出很多空行。
if(((char)tempchar)!=' '){
System.out.print((char)tempchar);
}
}
reader.close();
}catch(Exceptione){
e.printStackTrace();
}
try{
System.out.println("以字元為單位讀取文件內容,一次讀多個位元組:");
//一次讀多個字元
char[]tempchars=newchar[30];
intcharread=0;
reader=newInputStreamReader(newFileInputStream(fileName));
//讀入多個字元到字元數組中,charread為一次讀取字元數
while((charread=reader.read(tempchars))!=-1){
//同樣屏蔽掉 不顯示
if((charread==tempchars.length)
&&(tempchars[tempchars.length-1]!=' ')){
早激帆System.out.print(tempchars);
}else{
for(inti=0;i<charread;i++){
if(tempchars[i]==' '){
continue;
}else{
System.out.print(tempchars[i]);
}
}
}
}
}catch(Exceptione1){
e1.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
}
}
}
}
/**
*以行為單位讀取文件,常用於讀面向行的格式化文件
*/
(StringfileName){
Filefile=newFile(fileName);
BufferedReaderreader=null;
try{
System.out.println("以行為單位讀取文件內容,一次讀一整行:");
reader=newBufferedReader(newFileReader(file));
StringtempString=null;
intline=1;
//一次讀入一行,直到讀入null為文件結束
while((tempString=reader.readLine())!=null){
//顯示行號
System.out.println("line"+line+":"+tempString);
line++;
}
reader.close();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione1){
}
}
}
}
/**
*隨機讀取文件內容
*/
(StringfileName){
RandomAccessFilerandomFile=null;
try{
System.out.println("隨機讀取一段文件內容:");
//打開一個隨機訪問文件流,按只讀方式
randomFile=newRandomAccessFile(fileName,"r");
//文件長度,位元組數
longfileLength=randomFile.length();
//讀文件的起始位置
intbeginIndex=(fileLength>4)?4:0;
//將讀文件的開始位置移到beginIndex位置。
randomFile.seek(beginIndex);
byte[]bytes=newbyte[10];
intbyteread=0;
//一次讀10個位元組,如果文件內容不足10個位元組,則讀剩下的位元組。
//將一次讀取的位元組數賦給byteread
while((byteread=randomFile.read(bytes))!=-1){
System.out.write(bytes,0,byteread);
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(randomFile!=null){
try{
randomFile.close();
}catch(IOExceptione1){
}
}
}
}
/**
*顯示輸入流中還剩的位元組數
*/
(InputStreamin){
try{
System.out.println("當前位元組輸入流中的位元組數為:"+in.available());
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
StringfileName="C:/temp/newTemp.txt";
ReadFromFile.readFileByBytes(fileName);
ReadFromFile.readFileByChars(fileName);
ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}
❻ 用java如何讀取linux中的某個文件
java是跨平台語言,在linux上讀文件跟在windows上讀文件是一樣的 只是文件路徑不一樣,可以用File對象和FileInputSteam來讀取。但要注意文件編碼問題。
如果有中文請做適當的編碼轉換,通常情況下Linux的默認字元編碼為UTF-8編碼方式,項目可以直接採用utf8編碼方式操作.用System.getProperty("file.encoding")可檢查系統編碼格式。可改操作系統的文件系統編碼,vi /etc/profile,在文件末尾加上
export LANG="zh_CN.GBK"
export LC_ALL="zh_CN.GBK"
編碼轉換代碼:new String(files[i].getName().getBytes("GBK"),"UTF-8");
文件操作的核心代碼請參考下面代碼:
String path= "/home/";
path= "/home/multiverse/Repository/PMEPGImport";
File file=new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
//FileInputStream fis = new FileInputStream("fileName");
//InputStreamReader isr = new InputStreamReader(fis,"utf-8");
StringBuffer buffer = new StringBuffer();
String text;
BufferedReader input = new BufferedReader (new FileReader(tempList[i]));
while((text = input.readLine()) != null)
buffer.append(text +"/n"); }
if (tempList[i].isDirectory()) {
System.out.println("文件夾:"+tempList[i]);
}
}
❼ java中怎樣從一個文件中讀取文件信息
java讀取文件路徑、所佔空間大小等文件消息,主要是使用FileInputStream類來操作,示例如下:
importjava.io.File;
importjava.io.FileInputStream;
publicclassceshi{
publicstaticvoidmain(String[]args)throwsException{
java.io.FilelocalFile=newFile("D:\1.txt");
FileInputStreamins=newFileInputStream(localFile);
intcountLen=ins.available();
byte[]m_binArray=newbyte[countLen];
ins.read(m_binArray);
ins.close();
System.out.println(localFile.getAbsoluteFile()+""
+localFile.getFreeSpace());
}
}
運行結果如下:
❽ java 怎麼獲取指定路徑下的文件
//根據你的要求修改了一下代碼,現在已經能將某文件夾下的所有指定類型文件復制到
//指定文件夾下了
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class ReadFiles {
public static final String FILTER = "xml";
public static final String SRC_DIR = "E:\\StudyData";// 待掃描的文件夾
public static final String DES_DIR = "E:\\testdata";// 復制後的目標文件夾
public static void main(String[] args) {
long a = System.currentTimeMillis();
scanDir(SRC_DIR, DES_DIR);
System.out.println("共花費時間:"+(System.currentTimeMillis() - a)/1000+"秒");
}
public static void scanDir(String srcPath, String desPath) {
File dir = new File(srcPath);
File[] files = dir.listFiles();
if (files == null)
return;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
scanDir(files[i].getAbsolutePath(), desPath);
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase();
File(strFileName, desPath + files[i].getName());
}
}
}
public static void File(String srcName, String destName) {
if (srcName.endsWith(FILTER)) {
System.out.println("正在復制文件 "+srcName+" 至 "+destName);
try {
BufferedInputStream in = new BufferedInputStream(
new FileInputStream(srcName));
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(destName));
int i = 0;
byte[] buffer = new byte[2048];
while ((i = in.read(buffer)) != -1) {
out.write(buffer, 0, i);
}
out.close();
in.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
❾ Java打開指定文件
java打開文件夾使用方法:氏胡
String strTmp= "D:\abc\"殲臘攔;
Runtime.getRuntime().exec("explorer.exe" + strTmp);
java讀取文件使用方法:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class OpenFile {
public static void main(String args[]) {
try {
BufferedReader br = new BufferedReader(new FileReader("c://局嫌EmailSpider.java"));
String line = "";
while((line=br.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
❿ Java實現獲取指定路徑下的指定格式的文件
獲取指定路徑下的指定格式的文件
package filenameFilter;
import java io File;
/* * 實現功能 *
獲取指定路徑下的指定格式的文件
* */
public class Test {
public static void listPath(File file) {
// 接收篩選過後的文件對象數組
//用文件對象調用listFiles(FilenameFilter filter) 方法
//返回抽象路徑名數組 這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄
File files[] = file listFiles(new MyFilenameFilter())
/*//遍歷出指定文件路徑下符合條件的文件
for (File f : files) {
System out println(f)
}*/
//遍歷出指定文件路徑下的所有符合篩選條件的文件
for(File f: files){
if(f isDirectory()){
listPath(f)
}else{
System out println(f)
}
}
}
public static void main(String[] args) {
// 創建指定目錄的文件對象
File file = new File( F:\test )
// 調用文件曬篩選的方法 並將文件對象出入
listPath(file)
} }
package filenameFilter;
import java io File;
import java io FilenameFilter;
//實現FilenameFilter介面 可用於過濾器文件名 //本方法實現的是篩選指定格式結尾的文件 public class MyFilenameFilter implements FilenameFilter {
/**
* @param args
*
*
實現功能 實現FilenameFilter介面 定義出指定的文件篩選器
*
*/
@Override
//重寫accept方法 測試指定文件是否應該包含在某一文件列表中
public boolean accept(File dir String name) {
// TODO Auto generated method stub
// 創建返回值
boolean flag = true;
// 定義篩選條件
//endWith(String str) 判斷是否是以指定格式結尾的
if (name toLowerCase() endsWith( jpg )) {
} else if (name toLowerCase() endsWith( txt )) {
} else if (name toLowerCase() endsWith( gif )) {
} else {
flag = false;
}
// 返回定義的返回值
//當返回true時 表示傳入的文件滿足條件
return flag;
}
lishixin/Article/program/Java/hx/201311/26918