问题描述
- Android创建一个文件夹和文件
- public class MainActivity extends Activity {
URLConnection connection; int DownedFileLength=0; InputStream inputStream;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Thread threes=new Thread(runable); // threes.start(); Button button=(Button)findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub String savePAth=Environment.getExternalStorageDirectory()+""/text.mp3""; System.out.println(savePAth); File file1=new File(savePAth); if (!file1.exists()) { file1.mkdir(); } if (!file1.exists()) { try { file1.createNewFile(); } catch (Exception e) { System.out.println(""---test------创建文件""); e.printStackTrace(); } } } //Player(); });}@Overridepublic boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main menu); return true;}Runnable runable=new Runnable() { @Override public void run() { DownFile(""http://172.20.35.218:8090/mpthree/345.mp3"");// System.out.println(""获取的""); }}; /** * @param urlString */private void DownFile(String urlString) { try { URL url=new URL(urlString); connection=url.openConnection(); inputStream=connection.getInputStream(); } catch (Exception e) { e.printStackTrace(); System.out.println(""61---URL创建连接""); }
String savePAth=Environment.getExternalStorageDirectory()+""/music/"";
File file1=new File(savePAth); // if (!file1.exists()) { file1.mkdir(); // } System.out.println(savePAth);
String savePathString=Environment.getExternalStorageDirectory()+""/music/345.mp3"";
File file =new File(savePathString);if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
System.out.println(""---76------创建文件"");
e.printStackTrace();}
}else{
file.delete();
try {
file.createNewFile();
} catch (IOException e) {
System.out.println(""---84------删除--创建文件"");
e.printStackTrace();
}}
try { OutputStream outputStream=new FileOutputStream(file); byte [] buffer=new byte[1024*4]; int FileLength=connection.getContentLength(); while (DownedFileLength<FileLength) { outputStream.write(buffer); DownedFileLength+=inputStream.read(buffer); } outputStream.close(); } catch (Exception e) { System.out.println(""---97----下载过程""); e.printStackTrace(); }System.out.println(""-------下载完成。"");} public void Player(){ MediaPlayer mediaPlayer=new MediaPlayer(); mediaPlayer.reset(); try { File file = new File(""/sdcard/music/345.mp3""); FileInputStream fis = new FileInputStream(file); mediaPlayer.setDataSource(fis.getFD()); mediaPlayer.prepare(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mediaPlayer.start(); System.out.println(""-------播放完成。"");}
}
<uses-permission android:name=""android.permission.INTERNET""/><uses-permission android:name=""android.permission.WRITE_EXTERNAL_STORAGE""/><uses-permission android:name=""android.permission.WAKE_LOCK""/>
}![图片说明](http://img.ask.csdn.net/upload/201503/17/1426565721_200306.png)
解决方案
看下错误信息,是权限还是路径问题
解决方案二:
你添加内存读写权限了吗?
如果回答对您有帮助,请采纳
解决方案三:
不好意思,我找到原因了,代码没错,权限也有,是我新建的模拟器忘记设置SD卡的大小了,所以模拟器没有SD卡。。希望大家不要犯像我这样的低级错误,还害得我找了2天错
时间: 2024-08-26 22:38:42