java获取文件属性的方法
2016-07-14 10:42
519 查看
Java获取文件大小
编号:A3GS_TJ20100105011
描述:
本文讲述了如何在Java下获取文件大小。
例子:
NO
技术实现:
导入包:
import java.io.File;
实现代码:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\image0022.gif");
// Get the number of bytes in the file
long length = file.length();
System.out.println("文件大小:" + length);
}
}//注:只对文件有效,对文件夹无效……显示大小为0……囧吧?
JAVA读取文件的创建时间和修改时间
在系统中存在一个文件test.txt,其属性如下:
下面就给出对这个文件的创建时间 和修改时间 读取的代码。
点击这里 查看对文件内容 的读取代码。
Java代码
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* 读取文件创建时间和最后修改时间
*/
public class ReadFileTime {
public static void main(String[] args) {
getCreateTime();
getModifiedTime_1();
getModifiedTime_2();
}
/**
* 读取文件创建时间 注:此方法经本人亲测发现无效,本人系统为xp
*/
public static void getCreateTime(){
String filePath = "C:\\test.txt";
String strTime = null;
try {
Process p = Runtime.getRuntime().exec("cmd /C dir "
+ filePath
+ "/tc" );
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
if(line.endsWith(".txt")){
strTime = line.substring(0,17);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建时间 " + strTime);
//输出:创建时间 2009-08-17 10:21
}
/**
* 读取文件修改时间的方法1
*/
@SuppressWarnings("deprecation")
public static void getModifiedTime_1(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
cal.setTimeInMillis(time);
//此处toLocalString()方法是不推荐的,但是仍可输出
System.out.println("修改时间[1] " + cal.getTime().toLocaleString());
//输出:修改时间[1] 2009-8-17 10:32:38
}
/**
* 读取修改时间的方法2
*/
public static void getModifiedTime_2(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
cal.setTimeInMillis(time);
System.out.println("修改时间[2] " + formatter.format(cal.getTime()));
//输出:修改时间[2] 2009-08-17 10:32:38
}
}
注:下面这个方法也试了一下,亲测无效哦,囧死人了~~~~~~~~~
import java.io.*;
public class getCreateFileTime2
{
public static void main(String[] args)
{
try
{
Process p = Runtime.getRuntime().exec("cmd /C dir c:\\modifyInfoLoader.log /tc");
InputStream is=p.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String result;
String getTime=null;
while((result=br.readLine())!=null)
{
String[] str=result.split(" ");
for(int i=str.length-1; i>=0; i--)
{
if(str[i].equals("modifyInfoLoader.log"))
{
getTime=str[0]+" "+str[2];
}
}
}
System.out.println("modifyInfoLoader.log 文件的创建日期是:"+getTime);
}
catch(java.io.IOException exc)
{
exc.printStackTrace();
}
}
}
注:下面这个好像也不行~~~~~~~~~
在jdk中,File的操作并没有取得文件创建时间的方法。唯一提供提供的方法是lastModified()返回long值。牺牲创建时间的方法实在是为了满足跨平台的需要。但在windows环境中,需要取得文件创建时间的情况是存在的。
实现的办法是通过windows本地命令行来取得创建日期。以下代码主要参照.sun.com/thread.jspa?threadID=311281" target="_blank" rel="external">http://forum.java.sun.com/thread.jspa?threadID=311281&messageID=1247450
复制内容到剪贴板 程序代码
/*
* 著作権: Copyright (c) 2006
* 会社名:
* 更新履歴:
* 2007/01/29 14:21:23 1.0.0 徐小慧 新規作成
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
* Fileの時間を取得用クラス
*
* @author 徐小慧
* @version 1.0.0 $Id: Timetake 12254 2007-08-16 04:35:16Z
* xuxh $
* @since R1.0.0
*/
public class Timetake {
/**
* Fileの時間
* @param _file _file
* @return datetime datetime
*/
public static String getFileCreateDate(File _file) {
File file = _file;
try {
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
BufferedReader br = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));
for (int i = 0; i < 5; i++) {
br.readLine();
}
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(time);
br.close();
return datetime;
} catch (Exception e) {
return null;
}
}
}
//
File file = new File("C:\\xxh\\102.txt");
String time = Timetake.getFileCreateDate(file);
貌似没找到可行的方法来获取文件创建时间~~~~~
郁闷。。。
收藏于 2010-04-17
编号:A3GS_TJ20100105011
描述:
本文讲述了如何在Java下获取文件大小。
例子:
NO
技术实现:
导入包:
import java.io.File;
实现代码:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\image0022.gif");
// Get the number of bytes in the file
long length = file.length();
System.out.println("文件大小:" + length);
}
}//注:只对文件有效,对文件夹无效……显示大小为0……囧吧?
JAVA读取文件的创建时间和修改时间
在系统中存在一个文件test.txt,其属性如下:
下面就给出对这个文件的创建时间 和修改时间 读取的代码。
点击这里 查看对文件内容 的读取代码。
Java代码
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* 读取文件创建时间和最后修改时间
*/
public class ReadFileTime {
public static void main(String[] args) {
getCreateTime();
getModifiedTime_1();
getModifiedTime_2();
}
/**
* 读取文件创建时间 注:此方法经本人亲测发现无效,本人系统为xp
*/
public static void getCreateTime(){
String filePath = "C:\\test.txt";
String strTime = null;
try {
Process p = Runtime.getRuntime().exec("cmd /C dir "
+ filePath
+ "/tc" );
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while((line = br.readLine()) != null){
if(line.endsWith(".txt")){
strTime = line.substring(0,17);
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("创建时间 " + strTime);
//输出:创建时间 2009-08-17 10:21
}
/**
* 读取文件修改时间的方法1
*/
@SuppressWarnings("deprecation")
public static void getModifiedTime_1(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
cal.setTimeInMillis(time);
//此处toLocalString()方法是不推荐的,但是仍可输出
System.out.println("修改时间[1] " + cal.getTime().toLocaleString());
//输出:修改时间[1] 2009-8-17 10:32:38
}
/**
* 读取修改时间的方法2
*/
public static void getModifiedTime_2(){
File f = new File("C:\\test.txt");
Calendar cal = Calendar.getInstance();
long time = f.lastModified();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
cal.setTimeInMillis(time);
System.out.println("修改时间[2] " + formatter.format(cal.getTime()));
//输出:修改时间[2] 2009-08-17 10:32:38
}
}
注:下面这个方法也试了一下,亲测无效哦,囧死人了~~~~~~~~~
import java.io.*;
public class getCreateFileTime2
{
public static void main(String[] args)
{
try
{
Process p = Runtime.getRuntime().exec("cmd /C dir c:\\modifyInfoLoader.log /tc");
InputStream is=p.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String result;
String getTime=null;
while((result=br.readLine())!=null)
{
String[] str=result.split(" ");
for(int i=str.length-1; i>=0; i--)
{
if(str[i].equals("modifyInfoLoader.log"))
{
getTime=str[0]+" "+str[2];
}
}
}
System.out.println("modifyInfoLoader.log 文件的创建日期是:"+getTime);
}
catch(java.io.IOException exc)
{
exc.printStackTrace();
}
}
}
注:下面这个好像也不行~~~~~~~~~
在jdk中,File的操作并没有取得文件创建时间的方法。唯一提供提供的方法是lastModified()返回long值。牺牲创建时间的方法实在是为了满足跨平台的需要。但在windows环境中,需要取得文件创建时间的情况是存在的。
实现的办法是通过windows本地命令行来取得创建日期。以下代码主要参照.sun.com/thread.jspa?threadID=311281" target="_blank" rel="external">http://forum.java.sun.com/thread.jspa?threadID=311281&messageID=1247450
复制内容到剪贴板 程序代码
/*
* 著作権: Copyright (c) 2006
* 会社名:
* 更新履歴:
* 2007/01/29 14:21:23 1.0.0 徐小慧 新規作成
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
* Fileの時間を取得用クラス
*
* @author 徐小慧
* @version 1.0.0 $Id: Timetake 12254 2007-08-16 04:35:16Z
* xuxh $
* @since R1.0.0
*/
public class Timetake {
/**
* Fileの時間
* @param _file _file
* @return datetime datetime
*/
public static String getFileCreateDate(File _file) {
File file = _file;
try {
Process ls_proc = Runtime.getRuntime().exec(
"cmd.exe /c dir " + file.getAbsolutePath() + " /tc");
BufferedReader br = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));
for (int i = 0; i < 5; i++) {
br.readLine();
}
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(time);
br.close();
return datetime;
} catch (Exception e) {
return null;
}
}
}
//
File file = new File("C:\\xxh\\102.txt");
String time = Timetake.getFileCreateDate(file);
貌似没找到可行的方法来获取文件创建时间~~~~~
郁闷。。。
收藏于 2010-04-17
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树