Java/Android

16_안드로이드 파일 복사

우오우어아오앙 2016. 8. 29. 14:21
728x90

FileChannel을 이용한 안드로이드 파일 복사


화면에서의 버튼을 누르면

지정한 폴더의 파일 -> 다른 폴더로 복사되는 코드


test.dat 이라는 파일을 

TestFolder 파일이 없으면 새로 만든 후, 폴더에 복사하는 코드. 

 

public class fileCopy extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.activity_main);            

		final Button mButton = (Button) this.findViewById(R.id.button_copy);

		final String strNewFolder = "TestFolder" + File.separator;
		final String strFileName = "test.dat";

		final String strCurPath = getFilesDir().getPath() + File.separator;	
		final String strNewPath = getFilesDir().getPath() + File.separator + strNewFolder;
		
		final File fOldFileDir = new File (strCurPath);
		final File fNewFileDir = new File(strCurPath + strNewFolder);					
	
		mButton.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				if(!fNewFileDir.exists()){
					fNewFileDir.mkdir();
				}				
				else{
					String from = strCurPath + strFileName;
					String to = strNewPath + strFileName;

					try{
						filecopy(from, to);
						Toast.makeText(fileCopy.this, "Copy Sueccess", Toast.LENGTH_SHORT).show();
					}					
					catch(FileNotFoundException e){
						Toast.makeText(fileCopy.this, strFileName + "File not exist", Toast.LENGTH_SHORT).show();
					}					
					catch(Exception e){
						e.printStackTrace();
					}					
				}								
			}
		});	
	}
		
	
	private static void filecopy(String from, String to) throws Exception{
		FileInputStream fis = null;
		FileOutputStream fos = null;
		FileChannel in = null;
		FileChannel out = null;
		
		try{
			fis = new FileInputStream(from);
			fos = new FileOutputStream(to);
			in = fis.getChannel();
			out = fos.getChannel();
			
			in.transferTo(0, in.size(), out);
		}
		
		catch(Exception e){
			e.printStackTrace();
		}
		finally {
			if(out != null)
				out.close();
			if(in != null)
				in.close();
			if(fis != null)
				fis.close();
			if(fos != null)
				fos.close();
		}
	}	
}


728x90
반응형

'Java > Android' 카테고리의 다른 글

39_안드로이드 스튜디오 오류  (0) 2016.10.17
37_getString()  (0) 2016.10.13
36_내 번호 알아내기  (0) 2016.10.12
35_안드로이드 스튜디오 한글 깨짐  (0) 2016.10.07
1_[ Gson ]  (0) 2016.08.19